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.signer→x_novaw_corehcm_worker.Document.person→x_novaw_corehcm_person.x_novaw_edm_transaction_instanceextendsx_novaw_platform_transaction_instance(Platform domain — seespecs-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-corehr ↔
specs-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_type → DocumentType.category, one hop indirect.
Open items¶
- The five permission/ACL-map tables named in
tables.mdbut 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 treatingtables.mdas simply stale here.