Three pieces wire the per-party Master Deliverables List as the default
view at archive/<party>/mdl/:
1. **Dispatcher redirect.** GET (and HEAD) on
<project>/archive/<party>/mdl/ (case-fold on archive and mdl) now
302 → <project>/archive/<party>/mdl.table.html. Non-archive paths
and deeper mdl/ paths fall through unchanged.
2. **Default-spec fallback in RecognizeTableRequest.** When a request
matches archive/<party>/mdl.table.html and no operator-supplied
tables: { mdl: ... } declaration covers it, the handler returns a
recognised request anyway. Operator declarations still win — and a
typo'd declaration pointing at a missing file yields 404 (not a
silent fallback).
3. **Static-file fallback for the spec yaml.** GET archive/<party>/
mdl.table.yaml and archive/<party>/mdl.form.yaml return embedded
default bytes (default-mdl.{table,form}.yaml in the handler package)
when no operator file exists at that path. Operator files always
win because the dispatcher's os.Stat finds them before reaching the
IsDefaultMdlSpec branch.
The defaults use ZDDC vocabulary: tracking, title, discipline, type,
plannedRevision, plannedDate, status (DFT/IFR/IFA/IFC/AFC/AB), owner,
notes. Operators override per-party by writing
archive/<party>/{mdl.table.yaml,mdl.form.yaml} and a tables: { mdl: ... }
entry in the party's .zddc.
Tests:
- 4 dispatcher redirect cases (success, case-fold mdl, case-fold archive,
deeper-path skip, non-archive skip)
- 6 tablehandler cases (default fires at archive/<party>/, operator
override wins, scope check, embedded yaml served, operator yaml wins,
scope check on yaml fallback)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
48 lines
1.3 KiB
YAML
48 lines
1.3 KiB
YAML
# Default row schema for a Master Deliverables List entry. Served by
|
|
# zddc-server when no operator-supplied mdl.form.yaml exists at
|
|
# archive/<party>/. Operators can override per-party.
|
|
|
|
title: Deliverable
|
|
description: One planned or in-flight deliverable for this party.
|
|
|
|
schema:
|
|
type: object
|
|
required: [tracking, title]
|
|
additionalProperties: false
|
|
properties:
|
|
tracking:
|
|
type: string
|
|
title: Tracking number
|
|
description: ZDDC tracking identifier (e.g. proj-EM-SPC-0001).
|
|
minLength: 1
|
|
title:
|
|
type: string
|
|
title: Deliverable title
|
|
minLength: 1
|
|
discipline:
|
|
type: string
|
|
title: Discipline
|
|
description: Engineering discipline code (EM, EL, MC, ST, ...).
|
|
type:
|
|
type: string
|
|
title: Document type
|
|
description: Code for document class (SPC, DWG, RPT, ...).
|
|
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
|