Problem
sharepoint.sites.<name>.output_dir appears in S10's "Config schema" section, and is now modelled by SharepointCliSiteEntry — but nothing reads it. The CLI resolves output directories from --output or the site→repo mapping.
This is the same shape as the gitlab_group dead field (#42, fixed): a config key that is parsed, validated and stored, and then never consulted. An operator who sets it gets no error and no effect.
Why it is modelled anyway
#52's fix gave the --config file a typed pydantic model, which inherits extra="forbid". Without declaring sites/output_dir, a config written against S10's documented schema would have gone from silently ignoring sync_root to failing to start. So it is modelled deliberately, purely so documented configs load.
Suggested fix
Decide which it is, the same way #42 was decided:
- Delete it — drop the key from
SharepointCliSection, from S10's schema example, and from the model. Note the interaction with extra="forbid": deleting the field means an existing config carrying output_dir starts failing, so this wants a release note, or a tolerated-but-ignored shim.
- Wire it up — make
sync-site honour a per-site output_dir from config, which is what the spec implies today.
Deleting is probably right unless someone actually wants per-site output directories in config; --output already covers the case.
Files
src/mdd/sharepoint/models.py (SharepointCliSiteEntry)
docs/spec/S10-sharepoint-command.md (Config schema)
Provenance
Noticed while fixing #52. Deliberately out of scope there.
Problem
sharepoint.sites.<name>.output_dirappears in S10's "Config schema" section, and is now modelled bySharepointCliSiteEntry— but nothing reads it. The CLI resolves output directories from--outputor the site→repo mapping.This is the same shape as the
gitlab_groupdead field (#42, fixed): a config key that is parsed, validated and stored, and then never consulted. An operator who sets it gets no error and no effect.Why it is modelled anyway
#52's fix gave the
--configfile a typed pydantic model, which inheritsextra="forbid". Without declaringsites/output_dir, a config written against S10's documented schema would have gone from silently ignoringsync_rootto failing to start. So it is modelled deliberately, purely so documented configs load.Suggested fix
Decide which it is, the same way #42 was decided:
SharepointCliSection, from S10's schema example, and from the model. Note the interaction withextra="forbid": deleting the field means an existing config carryingoutput_dirstarts failing, so this wants a release note, or a tolerated-but-ignored shim.sync-sitehonour a per-siteoutput_dirfrom config, which is what the spec implies today.Deleting is probably right unless someone actually wants per-site output directories in config;
--outputalready covers the case.Files
src/mdd/sharepoint/models.py(SharepointCliSiteEntry)docs/spec/S10-sharepoint-command.md(Config schema)Provenance
Noticed while fixing #52. Deliberately out of scope there.