Skip to main content

Overview

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