{
  "schema_version": 1,
  "diagram_type": "architecture",
  "meta": {
    "title": "Assessments \u2014 current architecture",
    "subtitle": "Behavioral and English Proficiency \u00b7 repository inspection, 20 October 2026",
    "quality_profile": "showcase",
    "visual_preset": "blueprint",
    "animation": "none"
  },
  "components": [
    {
      "id": "assessment-browser",
      "type": "frontend",
      "label": "Assessment browser",
      "sublabel": "React assessment UI",
      "pos": [
        40,
        320
      ],
      "size": [
        190,
        84
      ]
    },
    {
      "id": "assessment-ingress",
      "type": "cloud",
      "label": "TLS ingress",
      "sublabel": "nginx \u00b7 HTTPS + WebSocket",
      "pos": [
        330,
        320
      ],
      "size": [
        180,
        84
      ]
    },
    {
      "id": "assessment-api",
      "type": "backend",
      "label": "Application API",
      "sublabel": "Fastify \u00b7 identity + state",
      "pos": [
        610,
        320
      ],
      "size": [
        210,
        84
      ]
    },
    {
      "id": "voice-and-jobs",
      "type": "backend",
      "label": "Voice and scoring",
      "sublabel": "Gateway + durable job loops",
      "pos": [
        940,
        320
      ],
      "size": [
        210,
        84
      ]
    },
    {
      "id": "model-provider",
      "type": "external",
      "label": "OpenAI APIs",
      "sublabel": "Live \u00b7 audio \u00b7 structured results",
      "pos": [
        1270,
        320
      ],
      "size": [
        220,
        84
      ]
    },
    {
      "id": "corporate-identity",
      "type": "security",
      "label": "Deloitte SSO",
      "sublabel": "Authentik \u00b7 verified OIDC claims",
      "pos": [
        610,
        80
      ],
      "size": [
        210,
        84
      ]
    },
    {
      "id": "assessment-database",
      "type": "database",
      "label": "PostgreSQL",
      "sublabel": "Attempts \u00b7 jobs \u00b7 review history",
      "pos": [
        610,
        570
      ],
      "size": [
        230,
        84
      ]
    },
    {
      "id": "english-evidence-files",
      "type": "database",
      "label": "Evidence files",
      "sublabel": "English audio + encrypted artifacts",
      "pos": [
        940,
        570
      ],
      "size": [
        230,
        84
      ]
    }
  ],
  "connections": [
    {
      "id": "browser-ingress",
      "from": "assessment-browser",
      "to": "assessment-ingress",
      "variant": "emphasis"
    },
    {
      "id": "ingress-api",
      "from": "assessment-ingress",
      "to": "assessment-api",
      "variant": "emphasis"
    },
    {
      "id": "api-engine",
      "from": "assessment-api",
      "to": "voice-and-jobs",
      "variant": "emphasis"
    },
    {
      "id": "engine-provider",
      "from": "voice-and-jobs",
      "to": "model-provider",
      "variant": "emphasis"
    },
    {
      "id": "verify-corporate-identity",
      "from": "assessment-api",
      "to": "corporate-identity",
      "variant": "security"
    },
    {
      "id": "persist-assessment-state",
      "from": "assessment-api",
      "to": "assessment-database",
      "fromSide": "bottom",
      "toSide": "top"
    },
    {
      "id": "persist-scoring-state",
      "from": "voice-and-jobs",
      "to": "assessment-database"
    },
    {
      "id": "persist-english-evidence",
      "from": "voice-and-jobs",
      "to": "english-evidence-files",
      "fromSide": "bottom",
      "toSide": "top"
    }
  ],
  "cards": [
    {
      "dot": "cyan",
      "title": "One shared experience",
      "items": [
        "Name, email and code grant candidate access to assigned assessments.",
        "Deloitte SSO also admits reviewers; administrators manage invitations and configurations."
      ]
    },
    {
      "dot": "emerald",
      "title": "One deployed process",
      "items": [
        "API, live voice and both job loops run in one tsf-proficiency container.",
        "PostgreSQL stores Behavioral audio chunks; English media uses encrypted local files."
      ]
    },
    {
      "dot": "amber",
      "title": "Human-reviewed evidence",
      "items": [
        "Submission seals the original answers and recordings before AI analysis.",
        "AI reveal is explicit; human ratings are separate, additive records."
      ]
    }
  ]
}
