TenkaCloud Docs

Problem metadata reference Stable

Each problem in a pack carries a metadata.json. The fields below are normative reference derived from the ProblemMetadata contract and the validateProblemMetadata validator in @tenkacloud/problem-sdk. The SDK owns the id, runtime, and scoring fields and is forward-compatible with extra catalog-display fields it does not interpret.

Fields

FieldTypePresenceDescription
idstringRequiredStable, non-empty problem identifier. Validated by the SDK.
runtimeobject | compositeOptionalRuntime descriptor ({ provider, engine, entry }) or a composite { kind: 'composite', targets }. Defaults to aws/cloudformation when absent.
cfnTemplatestringOptionalLegacy single deploy-body filename. Defaults to 'template.yaml' when neither runtime.entry nor cfnTemplate is set.
scoringProblemScoringMetadataOptionalOne of the six built-in scoring kinds (flag, multi-flag, uptime-flat, uptime-multi, phased-polling, attack-detection) plus composite-probe.
endpointsunknownOptionalOptional endpoint declarations validated by the metadata-section validators.
phasesunknownOptionalOptional phase declarations for phased-polling problems.
disruptionsunknownOptionalOptional disruption declarations for resilience problems.

Runtime declaration

A problem's runtime is either a single { provider, engine, entry } descriptor or a composite { kind: "composite", targets }. A composite runtime requires between 2 and 8 targets. The recognized provider/engine pairs are listed in the runtime capability matrix.

Example

The example below is illustrative, not normative.

{
  "id": "com.example.starter.intro",
  "runtime": { "provider": "aws", "engine": "cloudformation", "entry": "template.yaml" },
  "scoring": { "kind": "flag", "flagOutputKey": "Flag", "points": 100 }
}

Related: pack manifest reference and the validation error reference.