Platform schema¶
Current data contract for the Platform domain's ServiceNow-side tables —
the shared transaction/event/agent infrastructure that specs-corehr,
specs-time-attendance, and specs-superagent all build on. Read directly
from nova-platform-sn-app's live dictionary XML on main. Reverse-engineered
per the 2026-08-07 decision retiring schema/pending/ — goes directly here
with status: applied, since this reflects real, committed, shipped code,
not a proposal. This is the first schema content in this repo — bootstrap
of specs-platform's schema/ folder.
Every table carries sys_domain (ServiceNow Domain Separation) — omitted
from the entity blocks below for readability.
Diagram¶
erDiagram
TransactionConfiguration ||--o{ ExecutionScript : "transaction_configuration"
TransactionConfiguration ||--o{ ContextScript : "transaction_configuration"
TransactionConfiguration ||--o{ InputMetadata : "transaction_configuration"
TransactionConfiguration ||--o{ TransactionDecision : "transaction_configuration"
TransactionConfiguration ||--o{ BusinessEventConfiguration : "transaction_configuration"
TransactionConfiguration ||--o{ TransactionInstance : "transaction_configuration"
BusinessEventConfiguration ||--o{ EventPhaseConfiguration : "business_event_configuration"
EventPhaseConfiguration ||--o{ EventQueue : "event_phase_configuration"
TransactionInstance ||--o{ EventQueue : "transaction_instance"
Agent ||--o{ AgentActivation : "agent"
KnowledgeType }o--o{ KbKnowledgeBase : "kb_base_type_m2m"
Agent {
boolean internal
string agent_code
string source_application
string agent
}
AgentActivation {
ref agent
boolean active
}
BusinessEventConfiguration {
boolean active
string name
string description
ref transaction_configuration
}
ContextScript {
ref transaction_configuration
boolean active
int order
string script
string name
string description
}
EventPhaseConfiguration {
int default_offset_days
string phase
string audience_script
string payload_script
string name
ref business_event_configuration
boolean active
}
EventQueue {
string number
boolean execute_event
string dispatch_payload
string status
list target_users
ref event_phase_configuration
ref transaction_instance
string status_message
ref depends_on
ref source_user
datetime effective_date_time
string topic_name
}
ExecutionScript {
int order
ref transaction_configuration
boolean active
string description
string name
string script
}
InputMetadata {
boolean active
string table_name
ref transaction_configuration
string description
string type
boolean optional
string conditions
string name
}
KnowledgeType {
string name
string description
boolean is_agent_policy
}
Notification {
ref parent
string source_record
string action_payload
string state
string priority
string short_description
string type
string target_url
string subject
string number
ref recipient
string source_table
ref recipient_group
}
NovaProperties {
string key
string value
boolean active
}
Prompts {
string prompt_name
string prompt
string source_application
string prompt_version
}
TransactionConfiguration {
string source_application
string name
string description
boolean active
}
TransactionDecision {
ref decision_table
boolean active
ref transaction_configuration
}
TransactionInstance {
ref subject_user
string work_notes
ref transaction_configuration
string state
string user_request
ref flow_context
ref approval_task
string agent_process_id
list approvers
string transaction_input
string number
}
Extended by (other domains' tables)¶
TransactionInstance (x_novaw_platform_transaction_instance) is the base
table extended (via superTable) by:
- x_novaw_corehcm_transaction_instance (Core HR)
- x_novaw_edm_transaction_instance (Core HR — EDM)
- x_novaw_comp_transaction_instance (Core HR — Compensation)
- x_novaw_tna_transaction_instance (Time & Attendance)
EventQueue (x_novaw_platform_event_queue) is similarly extended by
x_novaw_corehcm_event_queue.
This is a real, load-bearing dependency: any change to TransactionInstance
or EventQueue's base fields propagates to all five extending tables across
two other repos. No cross-repo reference runs the other direction — every
reference field on Platform's own tables points to a native ServiceNow table
or another x_novaw_platform_* table, never out to Core HR or Time &
Attendance.
Discrepancies vs. github-private's component KB¶
github-private/docs/profile/repos/nova-platform-sn-app/tables.md describes
a *_base/subclass hierarchy (event_queue_base→event_queue,
transaction_base→transaction_configuration,
transaction_instance_base→transaction_instance, plus context_script_base,
execution_script_base, input_metadata_base, transaction_decision_base)
that does not exist in the live dictionary — none of these _base tables
appear anywhere in the app's exported table XML. Live tables extend native
sys_metadata directly, not an intermediate Platform _base layer. This is
the largest tables.md/live-code divergence found across any of the six
-sn-app repos checked in this pass — flag to whoever owns that KB sync.
Open items¶
- Confirm with whoever wrote
tables.md's_basehierarchy whether that reflects a past design that was since simplified, or a future direction not yet implemented — the divergence is large enough that it's worth knowing which.