{
  "schemaVersion": "1.0",
  "entityFamily": "modules",
  "entityType": "DefinedTerm",
  "entityId": "modules:129",
  "canonicalUrl": "https://babadook.tech/modules/security-identity",
  "machineBaseUrl": "https://babadook.tech/ai/modules/security-identity",
  "name": "Security and Identity",
  "aliases": [],
  "summary": "The breach that can't happen here: cross-tenant reads are denied by the database itself.",
  "description": [
    "Every breach postmortem finds the same corpse: a permission table nobody owned, a role matrix that drifted, an admin flag from a migration three years ago. XRP keeps no tables to rot. One authority issues every access decision, every decision cites policy and evidence, and the database itself refuses unscoped access even if application logic somehow asked for it."
  ],
  "sections": [
    {
      "id": "why-central-authority-removes-entire-breach-classes-63f739fc-2261-40c8-8343-45474e7f69e6",
      "heading": "Why central authority removes entire breach classes",
      "body": [
        "Shadow permission tables are where access control goes to rot: a role matrix in one module, an allow-list in another, a forgotten admin flag from a migration three years ago. XRP keeps no local tables to rot. One authority issues every decision, every decision cites policy version and evidence, and the database itself refuses unscoped access even if application logic somehow asked for it."
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": [
        {
          "id": "data-viz-1",
          "heading": "data Viz",
          "body": [],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "data-view-1",
          "heading": "data View",
          "body": [
            "section: thesis"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        }
      ],
      "sourceBlockType": "content_block",
      "sourceBlockId": "63f739fc-2261-40c8-8343-45474e7f69e6"
    },
    {
      "id": "security-guarantees-88f79d5d-f249-42f0-a4f9-375ce69ee555",
      "heading": "Security guarantees",
      "body": [],
      "specifications": [
        {
          "label": "No local tables",
          "value": "Zero shadow permission stores; decisions arrive centrally issued or not at all",
          "group": "spec Items"
        },
        {
          "label": "Row-level denial",
          "value": "Force-enabled RLS blocks unscoped reads and writes at the database",
          "group": "spec Items"
        },
        {
          "label": "Purpose binding",
          "value": "Sensitive reads carry purpose, scope, policy version, and redaction policy",
          "group": "spec Items"
        },
        {
          "label": "Full lineage",
          "value": "Sessions, decisions, and mutations link into evidence envelopes and Timeline-X",
          "group": "spec Items"
        },
        {
          "label": "section",
          "value": "capabilities",
          "group": "data View"
        }
      ],
      "relationships": [],
      "media": [],
      "children": [],
      "sourceBlockType": "product_specification",
      "sourceBlockId": "88f79d5d-f249-42f0-a4f9-375ce69ee555"
    },
    {
      "id": "who-answers-for-security-360b6f8d-815f-41ba-9b71-ac101128f51f",
      "heading": "Who answers for Security",
      "body": [
        "Four roles, four anxieties, one authority answering each."
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": [
        {
          "id": "data-viz-1",
          "heading": "data Viz",
          "body": [],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "data-view-1",
          "heading": "data View",
          "body": [
            "section: personas"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "section-1-1",
          "heading": "Section 1",
          "body": [
            "col Title: CISO",
            "col Cont: Breach classes removed by construction, not monitored for. No shadow tables to rot, no backdoor to discover, secrets barred from every observable surface."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "section-2-2",
          "heading": "Section 2",
          "body": [
            "col Title: CIO",
            "col Cont: Identity federation without local stores to sync, breach, or audit separately. One session model across every site and service."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "section-3-3",
          "heading": "Section 3",
          "body": [
            "col Title: Compliance Leader",
            "col Cont: Purpose-bound reads with policy versions and redaction recorded per access. Examiners query envelopes instead of sampling hope."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "section-4-4",
          "heading": "Section 4",
          "body": [
            "col Title: CEO",
            "col Cont: The board question — could our data leak across tenants — gets a structural answer: the database denies it, not a policy document promising it."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        }
      ],
      "sourceBlockType": "content_block",
      "sourceBlockId": "360b6f8d-815f-41ba-9b71-ac101128f51f"
    },
    {
      "id": "from-permission-sprawl-to-one-authority-a78b4b54-c2be-4a3b-b195-6f70cd65031d",
      "heading": "From permission sprawl to one authority",
      "body": [
        "subtitle: What each stage feels like after adoption.",
        "layout: alternating",
        "enable Slideshow: false",
        "slideshow Interval: 5000"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": [
        {
          "id": "shadow-tables-decommissioned-1",
          "heading": "Shadow tables decommissioned",
          "body": [
            "date: Phase 1",
            "status: in-progress",
            "Local user and permission stores switch off; decisions issue centrally.",
            "has Learn More: false"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "rows-enforce-themselves-2",
          "heading": "Rows enforce themselves",
          "body": [
            "date: Phase 2",
            "status: upcoming",
            "Force-enabled isolation denies unscoped access at the database layer.",
            "has Learn More: false"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "secrets-leave-telemetry-3",
          "heading": "Secrets leave telemetry",
          "body": [
            "date: Phase 3",
            "status: upcoming",
            "Metrics, logs, and paths scrubbed by enforced rule, not convention.",
            "has Learn More: false"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "audits-query-envelopes-4",
          "heading": "Audits query envelopes",
          "body": [
            "date: Phase 4",
            "status: upcoming",
            "Access reviews run as queries over sealed decisions with lineage.",
            "has Learn More: false"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        }
      ],
      "sourceBlockType": "timeline",
      "sourceBlockId": "a78b4b54-c2be-4a3b-b195-6f70cd65031d"
    },
    {
      "id": "security-in-daily-operation-5c06dee6-15d2-45c4-9320-96b99088223b",
      "heading": "Security in daily operation",
      "body": [
        "Each surface below flows through the same authority — authenticate once, decide centrally, record everything with lineage."
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": [
        {
          "id": "data-viz-1",
          "heading": "data Viz",
          "body": [],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "data-view-1",
          "heading": "data View",
          "body": [
            "section: applications"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "authentication-1",
          "heading": "Authentication",
          "body": [
            "Workforce federation, customer identity federation, and service credentials verify through one path. Sessions issue centrally with scope and lifetime bound; no local token stores exist to steal."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "authorization-2",
          "heading": "Authorization",
          "body": [
            "Every access carries purpose, scope, and policy version into the decision. Denials cite the rule; sensitive reads add redaction and disclosure records before data moves."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "audit-and-evidence-3",
          "heading": "Audit and Evidence",
          "body": [
            "Decisions and mutations seal into envelopes with actor, policy reference, and source digests. Reviews, investigations, and public-records requests run as queries instead of document hunts."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "secret-hygiene-4",
          "heading": "Secret Hygiene",
          "body": [
            "Credentials, tokens, and identifiers stay out of metrics, paths, logs, and packages by enforced rule. Leaks fail closed at emission instead of being scrubbed after exposure."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        }
      ],
      "sourceBlockType": "content_block",
      "sourceBlockId": "5c06dee6-15d2-45c4-9320-96b99088223b"
    },
    {
      "id": "security-sub-modules-d9920e57-1d28-41a9-9a34-f2be8ecf0081",
      "heading": "Security sub-modules",
      "body": [
        "subtitle: Isolate tenants, prove everything.",
        "data View: security-identity:sub-modules"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": [
        {
          "id": "tenant-isolation-1",
          "heading": "Tenant Isolation",
          "body": [
            "desc: Row-level enforcement, no exceptions.",
            "link: /sub-modules/tenant-isolation"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "audit-evidence-2",
          "heading": "Audit Evidence",
          "body": [
            "desc: Lineage on every mutation.",
            "link: /sub-modules/audit-evidence"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        }
      ],
      "sourceBlockType": "product_showcase",
      "sourceBlockId": "d9920e57-1d28-41a9-9a34-f2be8ecf0081"
    },
    {
      "id": "security-questions-581b8882-ce96-4e41-9db2-cc7ae190cbee",
      "heading": "Security questions",
      "body": [],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": [
        {
          "id": "section-1-1",
          "heading": "Section 1",
          "body": [
            "Where are permissions stored?",
            "Nowhere inside XRP. All authorization decisions are issued centrally by ARGUS; XRP holds no local permission tables that could drift."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "section-2-2",
          "heading": "Section 2",
          "body": [
            "What stops a bug from leaking another tenant's data?",
            "Force-enabled row-level security at the database layer. Even a defective query cannot read rows outside its tenant scope."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "section-3-3",
          "heading": "Section 3",
          "body": [
            "How are sensitive workforce records protected?",
            "Purpose-bound reads with field classification, scope checks, policy version, evidence receipts, and redaction — plus disclosure decisions recorded per access."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "section-4-4",
          "heading": "Section 4",
          "body": [
            "Isn't one authority a single point of failure?",
            "Centralized decisions with topology-matched deployment: the authority runs per site with local trust roots, so a network partition pauses convergence without forking enforcement."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "section-5-5",
          "heading": "Section 5",
          "body": [
            "We have Okta/Entra today. Does it survive?",
            "Yes. Workforce and customer identities federate through your existing providers — the authority consumes their assertions instead of replacing your directory."
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        },
        {
          "id": "data-view-1",
          "heading": "data View",
          "body": [
            "section: faqs"
          ],
          "specifications": [],
          "relationships": [],
          "media": [],
          "children": [],
          "sourceBlockType": "unsupported"
        }
      ],
      "sourceBlockType": "faq_section",
      "sourceBlockId": "581b8882-ce96-4e41-9db2-cc7ae190cbee"
    },
    {
      "id": "content-section-8",
      "heading": "content section",
      "body": [
        "value: Whether you run one location or fifty, there is one session model and one access decision path. XRP issues no local access tokens and maintains no local permission tables — every decision arrives centrally issued, and tenant isolation holds at the database row."
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": [],
      "sourceBlockType": "content_section"
    },
    {
      "id": "section-9",
      "heading": "Section 9",
      "body": [
        "Centrally issued access decisions across every user and service"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": []
    },
    {
      "id": "section-10",
      "heading": "Section 10",
      "body": [
        "Force-enabled row-level tenant isolation on all tenant tables"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": []
    },
    {
      "id": "section-11",
      "heading": "Section 11",
      "body": [
        "Workforce and customer identity federation without local shadow tables"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": []
    },
    {
      "id": "section-12",
      "heading": "Section 12",
      "body": [
        "Evidence-bound sessions with causal lineage into Timeline-X"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": []
    },
    {
      "id": "section-13",
      "heading": "Section 13",
      "body": [
        "Secret and identifier hygiene across metrics, logs, paths, and packages"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": []
    },
    {
      "id": "section-14",
      "heading": "Section 14",
      "body": [
        "Purpose-scoped sensitive reads with policy version and redaction"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": []
    },
    {
      "id": "section-15",
      "heading": "Section 15",
      "body": [
        "No vendor backdoor or hidden authorization path by construction"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": []
    },
    {
      "id": "section-16",
      "heading": "Section 16",
      "body": [
        "Export and disclosure decisions recorded per sensitive access"
      ],
      "specifications": [],
      "relationships": [],
      "media": [],
      "children": []
    }
  ],
  "specifications": [],
  "claims": [],
  "relationships": [
    {
      "type": "products",
      "targets": [
        {
          "id": "12",
          "family": "products",
          "name": "XRP",
          "slug": "xrp",
          "canonicalUrl": "https://babadook.tech/products/xrp",
          "relationship": "products"
        }
      ]
    },
    {
      "type": "sub_modules",
      "targets": [
        {
          "id": "145",
          "family": "sub-modules",
          "name": "Tenant Isolation",
          "slug": "tenant-isolation",
          "canonicalUrl": "https://babadook.tech/sub-modules/tenant-isolation",
          "relationship": "sub_modules"
        },
        {
          "id": "146",
          "family": "sub-modules",
          "name": "Audit Evidence",
          "slug": "audit-evidence",
          "canonicalUrl": "https://babadook.tech/sub-modules/audit-evidence",
          "relationship": "sub_modules"
        }
      ]
    }
  ],
  "authors": [],
  "media": [],
  "regulatoryContext": {
    "exportControlAndLicensingReviewRequired": false
  },
  "language": "en",
  "receipt": {
    "sourceBlockCount": 42,
    "projectedBlockCount": 42,
    "sourceValueCount": 83,
    "projectedValueCount": 91,
    "sourceRelationshipCount": 3,
    "projectedRelationshipCount": 3,
    "sourceClaimCount": 0,
    "projectedClaimCount": 0,
    "unknownBlockTypes": [],
    "omittedFields": [],
    "missingValuePaths": [],
    "invalidClaims": [],
    "complete": true
  },
  "contentHash": "cad6e76bc610b0b9d1e1bbbd7bd57d7f56aba6c7074a731d3ba0c2b5b19095f1"
}