Skip to main content

Loom

This longform module page is the manufacturer-docs entry point for the module. It uses the product overview when that surface is admitted and falls back to the first safe versioned detail page when the overview is still blocked. Use it first; drop into the versioned product pages only when you need deeper surface detail or channel-specific reference.

  • Canonical module key: loom
  • Source repo: JaddaHelpifyr/jhf-loom
  • Preferred versioned channel today: stable

Versioned product docs

Use these direct entry points when you need exact product behavior, operations, or reference detail:

Tool / Contract Summary

jhf-loom is the live Helpifyr ECM runtime. The repository owns the Loom stack definition, runtime contracts, repo-owned validation scripts, and documentation for the live Alfresco CE service on the owner-supplied runtime host.

When You Need Loom

Use jhf-loom when the Helpifyr stack needs one governed place for:

  • human document access through Share
  • repository/API-based content retrieval and update
  • metadata and version-controlled document handling
  • search-backed readback and transform-backed renditions

Do not use jhf-loom as the owner for identity, ingress, or shared Fabric governance truth.

Business Value

Loom gives the Helpifyr stack one governed place for:

  • content storage
  • metadata updates
  • version-aware content handling
  • Share-based human access
  • repository/API-based machine access
  • search-backed retrieval
  • transform-backed document renditions

Current Verified State

The following are live and verified now:

  • runtime: Alfresco Community Edition 26.1
  • hostname: <internal-runtime-redacted>
  • canonical human path: Share behind proxy-SSO
  • canonical machine path: repository/API behind the same trusted ingress
  • repo-owned live smoke and resilience validators are green

Available Now

  • repo-owned compose runtime for DB, broker, transform, search, repo, and Share
  • runtime contracts in config/runtime/*
  • runtime port binding contract in config/runtime/runtime-port-bindings-contract.json
  • Fabric consumer posture in config/fabric/*
  • public Share and repository surfaces through the trusted ingress path
  • repo-owned verify paths for smoke, restart, and cold start
  • canonical docs platform v1.6 base family rooted at:
    • README.md
    • docs/OVERVIEW.md
    • docs/INSTALL.md
    • docs/CONFIGURATION.md
    • docs/OPERATIONS.md
    • docs/TROUBLESHOOTING.md
    • docs/RELEASE_NOTES.md
    • docs_manifest.yml

Optional / Extended

  • direct Alfresco-to-Keycloak integration remains non-canonical
  • domain and boundary docs describe policy and model posture, but they do not claim a custom deployed content model exists in the live runtime

Planned / Not in Current Scope

  • new Fabric-produced shared contract families from Loom
  • new repo-owned workflow workers outside the Alfresco platform services
  • new custom content model rollout beyond the documented domain vocabulary

Public Surfaces

  • https://<internal-runtime-redacted>/
  • https://<internal-runtime-redacted>/share/
  • https://<internal-runtime-redacted>/alfresco/

Repo-owned host-loopback defaults are documented in docs/RUNTIME_PORT_BINDINGS.md: jhf-loom-repo defaults to 28081 and jhf-loom-share defaults to 28082. These defaults are not public edge routes; public ingress remains owned by JaddaHelpifyr/jhf-openclaw-env.

Ownership Boundary

Machine-readable boundary contract:

  • repo-boundary-contract.json (config/runtime/repo-boundary-contract.json)
  • validator: python scripts/validate_repo_boundary_contract.py

jhf-loom owns:

  • the Loom compose/runtime definition
  • Alfresco repository, Share, search, transform, DB, and broker stack posture
  • repo-owned runtime validators and operator runbooks
  • ECM-specific contracts and evidence docs in this repository
  • final stored document truth, immutable dossier files, and evidence bundles after admission

jhf-loom does not own:

  • shared governance or docs contracts in Fabric
  • ingress, DNS, TLS, and public edge routing
  • identity provider truth or SSO ownership
  • publisher or materialized public docs ownership
  • workflow approval decisions, business closeout truth, or submission authority

Producer-/Consumer-Zuordnung

Producer boundary:

  • no shared Fabric truth is produced here today

Consumer boundary:

  • Loom consumes Fabric-owned docs standard, matrix, registry, families, schemas, JARVIS, and admission surfaces read-only
  • Loom consumes identity from jhf-heddle
  • Loom consumes ingress/TLS/DNS from jhf-openclaw-env

Bootstrap document SoT seam:

  • downstream repos may reference Loom document identifiers, URIs, signatures, and evidence handles
  • downstream repos must not create a second final-document archive or immutable-evidence truth beside Loom
  • Fabric remains the admission/gate/closeout truth even when Loom is the final persisted document truth

Lifecycle Status

  • runtime state: live
  • public path state: live
  • SSO state: proxy-sso-live
  • repo maturity: active-runtime-with-boundary-docs

Readiness / Drift / Monitoring

  • search is mandatory for green readiness
  • no partial-green state is allowed while search is red
  • current host drift must still be tracked if Docker marks jhf-loom-search unhealthy while functional probes remain green

Verify Path

For a repo-owned verification pass, run:

python scripts/validate_docs_inventory_rollout.py
python scripts/validate_docs_platform_v1_6.py
python scripts/validate_repo_baseline.py

For runtime/operator checks, continue with the command-first paths documented in docs/TROUBLESHOOTING.md and docs/OPERATIONS.md.

Release Eligibility Posture

  • Public release-surface admission is bounded by contracts/admission/release_surface_inventory_v1.json.
  • Current repository history posture is tracked in contracts/admission/repository_publication_history_posture_v1.json.
  • Active owner blocker: JaddaHelpifyr/jhf-loom#281.
  • jhf-loom remains pending_history_scan; this slice prepares and tests public release surfaces only and does not authorize publication.
  • Repo-owned history evidence now runs through python scripts/verify_repository_history_posture.py and currently proves filtered_publication_required.
  • Canonical Gitea history remains private or internal; a future public candidate uses filtered publication from exact main and never rewrites canonical history.
  • The owner decision is recorded in docs/FILTERED_PUBLICATION_DECISION.md.

License: AGPLv3.

Helpifyr: https://helpifyr.com