Summary
The dataset create/update request body the portal actually sends is invalid against the contract: datasets/evaluation_set_schema.json is additionalProperties:false and does not define model_parameters, processing_functions, or draft_id, yet the FE create/update form sends all three. This is the opposite drift direction from #123 (there the contract requires fields the client can't send; here the client sends fields the contract forbids). The backend is loose and ignores them today, so the contract is over-strict AND wrong-by-omission.
Evidence
- Contract (schema v4.5.0 @
f295109): datasets/dataset_schema.json (the POST/PUT /datasets body) is an allOf over evaluation_set_schema.json, which has additionalProperties:false (:251) and whose properties (:146-241) do not include model_parameters, processing_functions, or draft_id.
- Frontend (
@frontend fe-035, TraigentFrontend @87615d2b): buildBenchmarkSubmissionData (CreateBenchmark.tsx:289-298) builds {description,name,label,type,use_case,examples,model_parameters,processing_functions} + conditional generator_config/evaluator_config (:302-307), draft_id (:308-309), id (edit only); POSTed raw to /datasets / PUT /datasets/:id (:1023-1030).
- Backend (
@backend be-014): create_benchmark requires only [name,type,label] and validates loosely — it ignores the extra keys (does not 422). So the runtime works; the published contract does not describe it.
Impact
A consumer validating the real portal create/update body against the contract (hybrid validation, codegen, a strict gateway, a future strict BE) rejects a legitimate payload. The contract neither documents the optional model_parameters/processing_functions/draft_id fields nor allows them.
Fix direction
Add model_parameters, processing_functions, draft_id (and confirm generator_config/evaluator_config) as optional properties on the dataset create schema, or split a create-request schema with additionalProperties:true for forward-compat. Coordinate with #123 (introduce a Create-request schema that omits server-generated id/examples_count and admits these client fields).
Acceptance Criteria
Contributing surfaces
- @Schema — contract omits the fields +
additionalProperties:false (sc-042).
- @frontend — sends them (
fe-035, CreateBenchmark.tsx:289-309).
- @backend — loose, ignores extras (
be-014).
Related
Pairs with #123 (create/resource conflation), #124 (datasets catalog). Session 2026-06-12-dev-portal-interaction-map-e2e (sc-042).
Summary
The dataset create/update request body the portal actually sends is invalid against the contract:
datasets/evaluation_set_schema.jsonisadditionalProperties:falseand does not definemodel_parameters,processing_functions, ordraft_id, yet the FE create/update form sends all three. This is the opposite drift direction from #123 (there the contract requires fields the client can't send; here the client sends fields the contract forbids). The backend is loose and ignores them today, so the contract is over-strict AND wrong-by-omission.Evidence
f295109):datasets/dataset_schema.json(thePOST/PUT /datasetsbody) is anallOfoverevaluation_set_schema.json, which hasadditionalProperties:false(:251) and whoseproperties(:146-241) do not includemodel_parameters,processing_functions, ordraft_id.@frontend fe-035, TraigentFrontend@87615d2b):buildBenchmarkSubmissionData(CreateBenchmark.tsx:289-298) builds{description,name,label,type,use_case,examples,model_parameters,processing_functions}+ conditionalgenerator_config/evaluator_config(:302-307),draft_id(:308-309),id(edit only); POSTed raw to/datasets/ PUT/datasets/:id(:1023-1030).@backend be-014):create_benchmarkrequires only[name,type,label]and validates loosely — it ignores the extra keys (does not 422). So the runtime works; the published contract does not describe it.Impact
A consumer validating the real portal create/update body against the contract (hybrid validation, codegen, a strict gateway, a future strict BE) rejects a legitimate payload. The contract neither documents the optional
model_parameters/processing_functions/draft_idfields nor allows them.Fix direction
Add
model_parameters,processing_functions,draft_id(and confirmgenerator_config/evaluator_config) as optional properties on the dataset create schema, or split a create-request schema withadditionalProperties:truefor forward-compat. Coordinate with #123 (introduce a Create-request schema that omits server-generatedid/examples_countand admits these client fields).Acceptance Criteria
model_parameters,processing_functions,draft_id.Contributing surfaces
additionalProperties:false(sc-042).fe-035,CreateBenchmark.tsx:289-309).be-014).Related
Pairs with #123 (create/resource conflation), #124 (datasets catalog). Session
2026-06-12-dev-portal-interaction-map-e2e(sc-042).