jhf-heddle
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:
heddle - Source repo:
JaddaHelpifyr/jhf-heddle - Preferred versioned channel today:
stable
Versioned product docs
Use these direct entry points when you need exact product behavior, operations, or reference detail:
jhf-heddle is the technical identity infrastructure layer for the Helpifyr SSO program.
It owns:
- Keycloak runtime and realm configuration
- OIDC/OAuth2 client registration patterns
- technical token and session surfaces
- canonical identity-claim language and SSO posture
- service-account and agent-identity technical setup
- health, drift, backup, restore, and rotation contracts
It does not own:
- business identities and business role truth
- final authorization policy decisions
- work ownership claims and leases
- a second user/role system outside the identity architecture
Bootstrap-specific identity seam:
jhf-spindleowns who a person is, whether the person is eligible, and which business role/profile is authoritativejhf-heddleowns how that upstream truth becomes technical claims, sessions, revocation posture, admitted OIDC client posture, and JML/access-projection hookshelpifyr-fabricowns policy admission, projection correlation, and deny-on-conflict posture- downstream repos may consume Heddle contracts and readbacks, but must not mint local replacement identity truth
Cross-repo role separation:
jhf-spindle: business identity and account binding source of truthjhf-heddle: IdP and technical auth infrastructurehelpifyr-fabric: policy decision, deny-on-conflict, audit correlationjhf-keystore: read-only consumer of the canonical claim language, never a local identity-truth ownerjhf-pattern: project and workspace business truth that must flow to consumers through Fabric rather than direct runtime reads
Implemented repository baseline:
- runtime bootstrap via
compose.yaml - environment contract via
.env.example - realm bootstrap via
config/keycloak/realms/helpifyr-template.json - downstream client template via
config/clients/client-template.yaml - Plane OSS client bootstrap via
config/clients/plane-openclaw-client-template.yaml - versioned claim contract via
config/identity/claim-vocabulary.v2.yaml - technical sync consumer template via
config/sync/technical-sync-consumer-template.yaml - Fabric Plane unified-access consumer template via
config/fabric/plane-unified-access-consumer.yaml - runbooks for bootstrap, backup/restore, and secret rotation
Verification surfaces:
scripts/verify-realm-export.ps1validates the repo-owned realm export baselinescripts/validate-technical-sync-surface.pyvalidates that the consumer/client templates stay import-only and deny-orientedscripts/validate-identity-claim-vocabulary.pyvalidates the canonical claim language, its spindle binding, and live Fabric identity contract posturescripts/verify-runtime-guardrails-v1.pyandscripts/verify-runtime-materialization-drift.pyare the canonical live execution paths against the owner-supplied runtime host
Release-eligibility posture:
- bounded public release surfaces are tracked in
contracts/admission/release_surface_inventory_v1.json - repository history admission remains pending in
contracts/admission/repository_publication_history_posture_v1.json - the non-destructive owner decision is documented in
docs/FILTERED_PUBLICATION_DECISION.md - active owner blocker:
JaddaHelpifyr/jhf-heddle#329 - operator-only host/runbook details remain explicit but excluded from the current public release-candidate set
- repo-owned history evidence now runs through
python scripts/verify_repository_history_posture.pyand currently provesfiltered_publication_required - the selected owner-side remediation is filtered publication from exact
main, not canonical history rewrite
Base docs family for the v1.6 docs platform rollout:
License: AGPLv3 Project: https://helpifyr.com