jhf-spool Integrations
Documentation Map
-
Integrations
-
Channel:
latest -
Source repo:
solarisara/jhf-spool
Integrations
Version: 2026-04-01
Scope
This document lists maintained integrations only.
- Legacy or archived prototype surfaces are not supported integration anchors.
- The maintained contract is Linux-first and HTTP-first.
- Fabric should treat this document and
fabric-manifest.jsonas repository-derived contract material, not as a live control plane.
Structure Contract
Every integration entry below uses the same required fields:
- Direction
- Type
- Surface
- Auth
- Stability
- Versioning
- Owner
Optional notes are kept short and only where needed.
Canonical Env and URL Contract
-
Canonical stack/project prefix:
JHF_SPOOL_STACK_NAME(defaultjhf-spool)
-
Legacy compatibility alias (still accepted):
NEWS_MEMORY_STACK_NAME
-
Canonical runtime base/public URLs:
NEWS_MEMORY_API_BASE_URL(downstream caller base, for example n8n -> API)NEWS_MEMORY_PUBLIC_BASE_URL(public URL used for externally visible links and redirect logic)
-
Canonical trust and proxy controls:
NEWS_MEMORY_TRUSTED_HOSTSNEWS_MEMORY_FORCE_HTTPS_REDIRECTNEWS_MEMORY_TLS_HOSTSNEWS_MEMORY_TLS_PORT
-
External URLs currently used by maintained live verification:
https://<internal-runtime-redacted>v1/healthv1/healthv1/healthv1/fabricv1/external-api-contracthttps://<internal-runtime-redacted>/openapi.jsonhttps://<internal-runtime-redacted>/docshttps://<internal-runtime-redacted>/redoc
Incoming Integrations
Public discovery and contract reads
- Direction: incoming
- Type: REST API
- Surface:
GET /v1/health/liveGET /v1/health/readyGET /v1/health/infoGET /openapi.jsonGET /docsGET /redocGET /v1/external-api-contractGET /v1/fabric/metadataGET /v1/release-notices
- Auth: none
- Stability: stable
- Versioning: live/readiness/info under
/v1; docs/openapi are derived from the maintained service contract - Owner:
opsie (cicd-ops) - Notes:
- this is the correct read-first discovery surface for a future Fabric consumer
/v1/health/infois the current version-adjacent runtime info surface; there is no dedicated/versionendpoint/v1/fabric/metadatais a read-only serialization of repository-maintained fabric metadata
Ingest API
- Direction: incoming
- Type: REST API
- Surface:
POST /v1/ingest/gdeltPOST /v1/ingest/ccnewsPOST /v1/ingest/gdelt/backfillPOST /v1/ingest/ccnews/backfillPOST /v1/ingest/gdelt/current-eventsPOST /v1/ingest/ccnews/current-eventsPOST /v1/ingest/rss/backfillPOST /v1/ingest/rss/current-eventsPOST /v1/ingest/newsapi/backfillPOST /v1/ingest/newsapi/current-eventsGET /v1/jobs/{job_id}
- Auth: scoped API key
- Stability: stable
- Versioning: maintained
/v1contract - Owner:
data-pipeliner - Notes:
- create ingest jobs and read job status
Search API
- Direction: incoming
- Type: REST API
- Surface:
POST /v1/search/semanticPOST /v1/search/filterGET /v1/articles/{article_id}GET /v1/articles/{article_id}/versionsGET /v1/articles/{article_id}/dedupe-cluster
- Auth: scoped API key
- Stability: stable
- Versioning: maintained
/v1contract - Owner:
query-engineer - Notes:
- clearest first-step consumer surface after health and OpenAPI
Export and research API
- Direction: incoming
- Type: REST API
- Surface:
POST /v1/datasets/snapshotsGET /v1/datasets/snapshots/{snapshot_id}GET /v1/datasets/snapshots/{snapshot_id}/lineageGET /v1/datasets/snapshots/{snapshot_id}/summaryGET /v1/datasets/snapshots/{snapshot_id}/replay-packagePOST /v1/exports/simulationGET /v1/exports/{export_id}GET /v1/exports/{export_id}/manifestGET /v1/exports/{export_id}/artifactPOST /v1/research/runsGET /v1/research/runs/{run_id}GET /v1/research/runs/{run_id}/compareGET /v1/research/runs/{run_id}/comparison-standardsGET /v1/research/runs/{run_id}/compare/exportGET /v1/research/runs/{run_id}/compare/timelineGET /v1/research/runs/{run_id}/impactGET /v1/research/runs/{run_id}/impact/exportGET /v1/research/runs/{run_id}/bundle/exportGET /v1/research/runs/{run_id}/consumer-validation
- Auth: export-capable, research-capable, or admin-capable scoped API key depending on route
- Stability: stable
- Versioning: maintained
/v1contract - Owner:
backend-architekt - Notes:
- implemented today
- broader than the minimum Fabric read-first surface
Account and billing API
- Direction: incoming
- Type: REST API
- Surface:
GET|POST /v1/accounts/...GET|POST /v1/auth/api-keysGET /v1/auth/scope-matrixGET /v1/creditsGET /v1/usageGET|POST /v1/accounts/{account_id}/billing-periodsPOST /v1/accounts/{account_id}/billing/checkoutPOST /v1/accounts/{account_id}/billing/customer-portalGET /v1/accounts/{account_id}/billing/subscriptionsGET /v1/accounts/{account_id}/billing/external-invoicesGET /v1/billing/external-invoices/{external_invoice_id}GET /v1/billing/external-invoices/{external_invoice_id}/downloadGET|POST /v1/billing-periods/{billing_period_id}/invoicesGET /v1/accounts/{account_id}/invoicesGET /v1/invoices/{invoice_id}POST /v1/invoices/{invoice_id}/settleGET /v1/billing/providerGET /v1/pricing-plans
- Auth: owner, billing-capable, admin, or account-bound scoped API key depending on route
- Stability: stable
- Versioning: maintained
/v1contract - Owner:
backend-architekt - Notes:
- commercial live rollout still depends on real Paddle production configuration
Support API
- Direction: incoming
- Type: REST API
- Surface:
GET|POST /v1/accounts/{account_id}/support-casesGET /v1/support-cases/{case_id}GET /v1/support-cases/{case_id}/customer-viewPOST /v1/support-cases/{case_id}/updateGET /v1/support-cases/{case_id}/evidencePOST /v1/support-cases/{case_id}/evidence/enrich
- Auth: account-bound or admin-scoped API key
- Stability: stable
- Versioning: maintained
/v1contract - Owner:
backend-architekt - Notes:
- evidence is advisory and must never be treated as case truth
- enrichment supports timeout/degraded/fallback boundaries plus replay-safe rerun via replay token
- contract details:
docs/SUPPORT_EVIDENCE_CONTRACT.md
Governance and runtime API
- Direction: incoming
- Type: REST API
- Surface:
GET /v1/research/operational-dashboard-summaryGET /v1/research/operational-slo-gatesGET /v1/research/security-compliance-gatesGET /v1/research/incident-readiness-gatesGET /v1/research/security-pen-test-evidenceGET /v1/research/tls-proxy-readinessGET /v1/research/secret-readinessGET /v1/research/paddle-readiness
- Auth: admin or operator-oriented scoped API key
- Stability: stable
- Versioning: maintained
/v1contract - Owner:
opsie (cicd-ops) - Notes:
- internal/operator-facing, not part of the narrow external customer contract
Webhook ingress
- Direction: incoming
- Type: Webhook
- Surface:
POST /v1/webhooks/paddle
- Auth: Paddle webhook signature secret
- Stability: stable
- Versioning: provider payload versioning plus maintained
/v1ingress path - Owner:
backend-architekt
Web UI
- Direction: incoming
- Type: Other
- Surface:
GET /GET /pricingGET /developers/auth/.../app/...
- Auth: signed cookie session for authenticated app sections
- Stability: stable
- Versioning: web UI follows the maintained service state; no separate semver surface
- Owner:
backend-architekt - Notes:
- human-facing surface, not a preferred first Fabric integration anchor
Outgoing Integrations
PostgreSQL runtime store
- Direction: outgoing
- Type: Database contract
- Surface:
DATABASE_URL - Auth: runtime database credential
- Stability: stable
- Versioning: deployment-specific PostgreSQL version; no repository-owned database API version
- Owner:
infra-ops
MinIO artifact store
- Direction: outgoing
- Type: File contract
- Surface:
MINIO_ENDPOINT - Auth: object-store credential
- Stability: stable
- Versioning: deployment-specific MinIO/S3-compatible runtime
- Owner:
infra-ops
Qdrant vector store
- Direction: outgoing
- Type: Database contract
- Surface:
QDRANT_URL - Auth: internal runtime access
- Stability: stable
- Versioning: deployment-specific Qdrant runtime; repository assumes maintained payload compatibility
- Owner:
query-engineer
Redis runtime dependency
- Direction: outgoing
- Type: Database contract
- Surface:
REDIS_URL - Auth: runtime Redis credential
- Stability: stable
- Versioning: deployment-specific Redis runtime
- Owner:
infra-ops
GDELT source
- Direction: outgoing
- Type: REST API
- Surface: maintained GDELT ingestion client path
- Auth: none
- Stability: stable
- Versioning: provider-managed
- Owner:
data-pipeliner
Common Crawl CC-NEWS source
- Direction: outgoing
- Type: REST API / object retrieval
- Surface: maintained CC-NEWS ingestion client path
- Auth: none
- Stability: stable
- Versioning: provider-managed
- Owner:
data-pipeliner
RSS sources
- Direction: outgoing
- Type: Other
- Surface: configured RSS feed URLs
- Auth: feed-specific or public
- Stability: stable
- Versioning: provider-managed
- Owner:
data-pipeliner
NewsAPI source
- Direction: outgoing
- Type: REST API
- Surface: maintained NewsAPI ingestion client path
- Auth: API key
- Stability: stable
- Versioning: provider-managed NewsAPI v1 contract
- Owner:
data-pipeliner
Bidirectional Integrations
n8n workflow orchestration
- Direction: bidirectional
- Type: REST API + CLI/file deployment support
- Surface:
- maintained News Memory API routes consumed by workflows
n8n-workflows/jhf-spool/*scripts/deploy_news_memory_n8n_workflows.py
- Auth: shared scoped API key plus deployment-time n8n credentials
- Stability: stable
- Versioning: maintained API under
/v1; workflow compatibility is repository-managed and deployment-specific - Owner:
n8n-workflow-specialist - Notes:
- optional for the maintained core service
CLI and File Contracts
Repository metadata and Fabric helpers
- Direction: incoming
- Type: File contract / CLI
- Surface:
fabric-manifest.jsondocs/RUNTIME_CONTRACT.jsondocs/STACK_CONTRACT.mddocs/FABRIC_TOOL_PROFILE.mdscripts/export-fabric-metadata.pyscripts/fabric-selfcheck.sh
- Auth: repository read access, plus optional API access for selfcheck
- Stability: stable
- Versioning: repository-managed; tied to current branch and manifest schema
- Owner:
opsie (cicd-ops)
Operational helper scripts
- Direction: incoming
- Type: CLI
- Surface:
scripts/smoke-test.pyscripts/ops/run_live_platform_journey.pyscripts/ops/run_operational_release_checks.pyscripts/ops/run_host_release_check.pyscripts/ops/run_postgres_verify_suite.pyscripts/ops/mint_news_memory_agent_key.pyscripts/ops/run_constitutional_case.pyscripts/ops/review_constitutional_slice.pyscripts/ops/summarize_constitutional_case.py
- Auth: depends on helper; usually API key or host access
- Stability: stable
- Versioning: repository-managed helper contract
- Owner:
opsie (cicd-ops)
Deployment resilience credential-rotation contract
- Direction: incoming
- Type: File contract
- Surface:
docs/CREDENTIAL_ROTATION_CONTRACT.mdscripts/ops/verify_spool_auth_rotation.pytests/test_credential_rotation_consumer_contract.py
- Auth: verification run requires valid and invalid search keys supplied by operator/CI
- Stability: stable
- Versioning:
spool-auth-rotation-v1 - Owner:
opsie (cicd-ops) - Notes:
- consumer-facing verify contract for deployment resilience paths
- consumer is expected to gate on
classification.decision
Legacy Surface
Legacy webhook router
- Direction: incoming
- Type: Webhook
- Surface:
/webhooks/agent/{agent_name}/webhooks/team/broadcast/webhooks/health/webhooks/agents
- Auth: weak or implicit
- Stability: legacy
- Versioning: no maintained compatibility commitment
- Owner: legacy / not recommended
- Notes:
- present in repository history
- not a supported integration anchor
Implemented Fabric Read Surface
Fabric metadata
- Direction: incoming
- Type: REST API
- Surface:
GET /v1/fabric/metadata
- Auth: none
- Stability: stable
- Versioning: repository-derived from
fabric-manifest.json; does not define a second independent API contract - Owner:
opsie (cicd-ops)
Fabric Wave-3 governance contract consumption
- Direction: outgoing
- Type: REST API
- Surface:
GETapi/v1/contracts/matrixGETapi/v1/contracts/docs-standard- referenced family surfaces from matrix entries relevant to
jhf-spool
- Auth: none (read-only)
- Stability: stable
- Versioning: accepted family version
1.0.0for relevant Wave-3 governance families - Owner:
opsie (cicd-ops) - Notes:
- canonical family/version source is Fabric, not local docs
- local adoption mapping lives in
fabric-manifest.json(fabric_wave3_adoption) and FABRIC_WAVE3_ADOPTION.md (docs/FABRIC_WAVE3_ADOPTION.md)
Dobby v1 Classification
Dobby integration posture (v1)
- Direction: incoming (optional consumer)
- Type: REST API
- Surface:
GET /v1/support-cases/{case_id}/evidencePOST /v1/search/semanticPOST /v1/search/filterGET /v1/health/liveGET /v1/health/readyGET /v1/fabric/metadata
- Auth: scoped API key for search/evidence; none for public health/metadata
- Stability: stable
- Versioning: maintained
/v1contract - Owner:
opsie (cicd-ops) - Notes:
- canonical v1 classification is
optional read-only evidence source - Dobby v1 is not required to integrate Spool as hard runtime dependency
- Dobby v1 write/control integration into Spool is out of scope
- source issues:
solarisara/jhf-spool#85,JaddaHelpifyr/jhf-dobby#30,JaddaHelpifyr/jhf-dobby#32
- canonical v1 classification is
Integrated Mode Preparation
Shared-service attachment stance
- Direction: bidirectional (planned)
- Type: Other
- Surface:
fabric-manifest.json(mode_contract.integrated)docs/INTEGRATED_MODE_CONTRACT.md
- Auth: n/a (planning contract only)
- Stability: planned
- Versioning: tracked via manifest and docs revisions
- Owner:
opsie (cicd-ops) - Notes:
- integrated mode is contract-prepared only
- no shared heavy-store migration is implied
Fabric combination profile truth (consumer)
- Direction: outgoing
- Type: REST API
- Surface:
GETapi/v1/combinations/profilesscripts/ops/evaluate_fabric_combination_consumer.py
- Auth: none (read-only)
- Stability: stable
- Versioning: Fabric-owned endpoint/version
- Owner:
opsie (cicd-ops)for consumer behavior,jhf-fabricfor source truth - Notes:
jhf-spoolconsumes combination truth read-only- local heavy data-plane health can complement monitoring only and must not overwrite active combination truth
Adopt-first migration stance
- Direction: incoming
- Type: File contract
- Surface:
docs/ADOPT_FIRST_MIGRATION.md
- Auth: repository read access
- Stability: stable (documentation contract)
- Versioning: repository revision
- Owner:
opsie (cicd-ops)
License: AGPLv3
Learn more: https://helpifyr.com