PCProvider ComplianceVPS architecture direction
Corrected convergence · complete AI onboarding case first

One owned VPS application, one God-source blueprint, bounded supplementary repos.

No managed Supabase dependency. PostgreSQL, files, queues, models, backups and networking stay under operator control. Legalise supplies the closest whole-system reference; Harrison’s domain remains custom.

Recommended self-hosted foundation

Adapt the whole-case loop. Own the domain and deployment.

Legalise is the reference implementation. The production product is a Provider Compliance application running on a controlled VPS.

Never outsourced:case/backstory semantics · tenant and actor boundaries · source and edition manifests · claim/evidence lineage · gap ownership · approvals/declarations · regulatory validators · business audit · backup/restore · fixture outcomes
Foundation alternatives

Why this direction beats the tempting shortcuts.

The deciding question is whether the option advances Harrison’s complete case loop without surrendering authority or control.

God-source · synthetic spike

Legalise unchanged

Closest whole-system loop and self-hosted stack, but explicitly evaluation quality with no organisation multi-tenancy.

Blueprint, never live as-is
No-code shortcut

NocoBase

Strong AI/business-system reference, but advanced approvals and client-delivery rights depend on commercial editions.

Research reference, not default
Backend shortcut

Directus

Useful Postgres, files, APIs and permissions, but still needs the entire case, AI, evidence and sign-off product.

Optional admin substrate
Platform soup

Dify + n8n + BPMN + GRC

Many visible features, but duplicate workflow and storage authorities with no coherent provider-application case.

Reject as foundation
System mechanics

How the minimum system works.

A model may propose content; it never becomes the case authority or mutates an approved artifact directly.

  1. 1
    Receive and manifest

    Files enter versioned storage and receive tenant, case, hash, sensitivity, scope and source records before parsing.

  2. 2
    Structure the case

    Pydantic contracts validate backstory, facts, unknowns, claims, evidence, gaps, decisions and approvals stored in Postgres.

  3. 3
    Run a pinned document job

    A Python worker reads the exact master edition and performs DOCX, XLSX or PDF operations from a versioned job contract.

  4. 4
    Emit receipts

    Every transformation produces input/output census, delta log, validation results and an artifact manifest.

  5. 5
    Approve exact versions

    Consultant and client approvals bind to specific claims, decisions and artifact versions.

  6. 6
    Finalise mechanically

    Finalisation creates immutable output records; submission remains a separately authorised human event.

Deferred-by-default

Every optional repo has a trigger.

No “we may need it later” dependencies.

Dify

Add as an AI-workflow sidecar only when non-developers need to author bounded model/RAG tools.

n8n

Add for external notifications, imports and exports—not the provider case lifecycle.

OPA

Add when rule volume and effective-date versioning require a separate tested catalogue.

OpenFGA

Add when organisation, consultant, client and reviewer relationships exceed direct Postgres policies.

Langfuse

Add when model-call volume requires dedicated trace and prompt comparison.

Docling

Add when mixed-format fixtures fail narrow local parsing probes.

Architecture proof

Test the minimum against two real cases.

One proven success and one incomplete case must pass tenant isolation, edition selection, document census, gap routing and approval history before the stack expands.

Open next evidence gate