# Default row schema for a Master Deliverables List entry, served by # zddc-server when no operator-supplied form.yaml exists at # archive//mdl/. # # Properties cover the default ZDDC tracking-number components # (zddc.varasys.io/reference.html#tracking-numbers) plus the standard # MDL metadata (title, planned revision, planned date, status, owner, # notes). The default ships the five required components + an optional # per-deliverable suffix; the project-wide phase / area components are # present only as commented-out templates (see below). The schema is # intentionally permissive on the components (free-text strings, no # regex / enum constraints) — projects choose their own conventions, # and a default that imposed a fixed set would just get in the way. # Tightening per project is done via .zddc field_codes:, which the # cascade resolves before the form is rendered. # # `originator` is folder-bound: the cascade's folder_fields pins it to # the party-folder name, so the form renders it read-only and the # server sets it from the path — the folder is its single source of # truth. # # The six audit fields at the bottom are server-managed: clients must # render them as read-only and never submit values for them. # WriteWithHistory strips any client-supplied audit fields before # schema validation and re-injects the authoritative values. # # To customize: drop your own form.yaml into archive//mdl/ # (the same directory as table.yaml). Tighten constraints with # `enum:`, `pattern:`, `minLength:`, etc. To add the project-wide # phase / area components, uncomment them below AND override the # cascade's filename_format to include them — apply to EVERY # deliverable in the project, never a subset. Add fields and they'll # appear in the row-edit form; add a matching column to table.yaml # to surface the field in the table view too. title: Deliverable description: One planned or in-flight deliverable. The first fields are components of this row's tracking number (originator is set from the party folder); the rest are deliverable metadata. schema: type: object required: [originator, project, discipline, type, sequence, title] additionalProperties: false properties: # --- Tracking-number components (matches the reference doc's # field definitions, in order). originator / project / discipline # / type / sequence are the structural minimum that ships by # default; suffix is an optional per-deliverable part marker. The # project-wide phase / area components are commented out below — # uncomment them (and the matching .zddc filename_format) only if # your project uses them on EVERY deliverable. originator: type: string title: Originator description: Bound to the party-folder name — the folder is the source of truth for the originator code. Server-set and read-only; you don't edit it here. minLength: 1 # phase: # project-wide; sits between originator and project # type: string # title: Phase # description: Project phase code (e.g. ECI, EPC). # minLength: 1 project: type: string title: Project description: Project identifier, or your corporate placeholder (e.g. 000000) for non-project deliverables. minLength: 1 # area: # project-wide; sits between project and discipline # type: string # title: Area # description: Area / budget code (e.g. B02). # minLength: 1 discipline: type: string title: Discipline description: Engineering or functional group code (EL, ME, CV, PM, ...). minLength: 1 type: type: string title: Document type description: Document category code within the discipline (SPC, DWG, RPT, ...). minLength: 1 sequence: type: string title: Sequence description: Zero-padded integer (0001, 0042, 2623). Stored as a string so leading zeros survive YAML. minLength: 1 suffix: type: string title: Suffix description: Optional structural-part suffix (A for Appendix A, 01 for Sheet 1). Just the letters/digits — the leading dash is added by the cascade's filename_format. Use only for parts of the SAME deliverable; separate documents get their own sequence. # --- Deliverable metadata. title: type: string title: Deliverable title minLength: 1 plannedRevision: type: string title: Planned revision description: Issue revision label, e.g. A, B, IFR, IFC. plannedDate: type: string title: Planned date format: date status: type: string title: Current status enum: [DFT, IFR, IFA, IFC, AFC, AB] owner: type: string title: Owner description: Email or party name responsible for producing this row. notes: type: string title: Notes # --- Audit fields (server-managed; clients must not submit # values). WriteWithHistory strips any client-supplied versions # before validation and re-injects authoritative values. created_at: type: string title: Created format: date-time readOnly: true created_by: type: string title: Created by format: email readOnly: true updated_at: type: string title: Updated format: date-time readOnly: true updated_by: type: string title: Updated by format: email readOnly: true revision: type: integer title: Revision minimum: 1 readOnly: true previous_sha: type: string title: Previous SHA description: SHA-256 (first 8 hex chars) of the prior revision's bytes. readOnly: true ui: notes: ui:widget: textarea