Skip to content

EDM (Worker Document Management) schema

Current data contract for Worker Document Management's ServiceNow-side tables, read directly from nova-edm-sn-app's live fluent dictionary (sn_app/nova_src/fluent/dictionary/*.now.ts) on main. Reverse-engineered per the 2026-08-07 decision retiring schema/pending/ — goes directly here with status: applied rather than through an intermediate holding state, since this reflects real, committed, shipped code, not a proposal.

Every table carries sys_domain/sys_domain_path (ServiceNow Domain Separation) — omitted from the entity blocks below for readability; assume present unless shown otherwise.

Diagram

erDiagram
    DocumentType }o--|| Category : "category"
    Document }o--|| DocumentType : "document_type"
    Document }o--|| CorehrWorker : "worker (cross-repo)"
    Document }o--|| CorehrPerson : "person (cross-repo)"
    DocumentMetadata }o--|| Document : "document"
    DocumentMetadata }o--|| CorehrWorker : "worker (cross-repo)"
    DocumentSignature }o--|| Document : "document"
    DocumentSignature }o--|| CorehrWorker : "signer (cross-repo)"
    EdmTransactionInstance ||--|| PlatformTransactionInstance : "extends (cross-repo)"

    Category {
        string name
        string description
        boolean expiration_required
        boolean active
    }

    DocumentType {
        string name
        string description
        ref category
        string extraction_schema
        string validation_prompt
        boolean ownership_check_required
        string ownership_target
        string ownership_name_key
    }

    Document {
        ref worker
        ref person
        ref document_type
        ref ds_document
        boolean approval_required
        string sensitivity_level
        boolean renewal_required
        string status
        string signature_status
        date expiration_date
        date effective_date
    }

    DocumentMetadata {
        ref worker
        ref document
        ref ds_document_version
        string ai_context
    }

    DocumentSignature {
        ref document
        ref signer
        string signature_method
        string signature_status
        datetime due_date
        datetime signed_at
        string signature_reference
        string target_table
    }

    EdmTransactionInstance {
        string note
    }

EdmTransactionInstance (x_novaw_edm_transaction_instance) adds zero fields of its own — pure subclass of x_novaw_platform_transaction_instance (see ../../specs-platform/schema/platform-schema.md).

Cross-repo dependencies

  • Document.worker, DocumentMetadata.worker, DocumentSignature.signerx_novaw_corehcm_worker.
  • Document.personx_novaw_corehcm_person.
  • x_novaw_edm_transaction_instance extends x_novaw_platform_transaction_instance (Platform domain — see specs-platform).

Both Worker/Person dependencies are on tables already covered by core-hr-schema.md in this same repo — no cross-repo-boundary risk for those two. The Platform dependency is a genuine specs-corehrspecs-platform schema coupling.

Discrepancies vs. github-private's component KB

github-private/docs/profile/repos/nova-edm-sn-app/tables.md describes several tables that do not appear anywhere in the live fluent dictionary — no dictionary definitions found for x_novaw_edm_category_permission, x_novaw_edm_cat_user_can_access_mtom, x_novaw_edm_cat_ug_can_access_mtom, x_novaw_edm_cat_uc_can_access_mtom, or x_novaw_edm_cat_ur_can_access_mtom. tables.md also lists a category reference field directly on Document that doesn't exist in the live code — the actual classification path is Document.document_typeDocumentType.category, one hop indirect.

Open items

  • The five permission/ACL-map tables named in tables.md but absent from the live dictionary — confirm whether they were removed, never built, or live in a part of the codebase this pass didn't check (e.g. a separate ACL config format) before treating tables.md as simply stale here.