Skip to main content

Snapshot Format

Reference for full snapshot JSON payloads consumed at the boundary.

Top-Level Shape

{
"meta": {
"version": "2026-02-23.1",
"generatedAtEpochMillis": 1766800000000,
"source": "s3://flags/app-snapshot.json"
},
"flags": [
{
"key": "feature::app::checkoutVariant",
"defaultValue": { "type": "ENUM", "value": "CLASSIC", "enumClassName": "com.example.CheckoutVariant" },
"salt": "v1",
"isActive": true,
"rampUpAllowlist": [],
"rules": []
}
]
}

Fields

FieldTypeRequiredNotes
metaobjectNoOptional metadata for provenance and versioning.
meta.versionstringNoLogical config revision string.
meta.generatedAtEpochMillisnumberNoUTC epoch milliseconds from publisher.
meta.sourcestringNoSource identifier (URI, commit, artifact ref).
flagsarrayYesFull set of feature definitions for namespace scope.
flags[].keystringYesFeature identifier; must resolve against namespace schema.
flags[].defaultValueobjectYesTagged value object (BOOLEAN, INT, DOUBLE, STRING, ENUM, DATA_CLASS).
flags[].saltstringYesSalt used for deterministic bucketing.
flags[].isActivebooleanYesIf false, evaluation returns default regardless of rules.
flags[].rampUpAllowlistarray<string>NoStable IDs that bypass rollout gate for this feature.
flags[].rulesarrayYesOrdered rule payloads evaluated by deterministic precedence.

Value Variants

VariantShape
Boolean{ "type": "BOOLEAN", "value": true }
Int{ "type": "INT", "value": 3 }
Double{ "type": "DOUBLE", "value": 0.5 }
String{ "type": "STRING", "value": "text" }
Enum{ "type": "ENUM", "value": "CLASSIC", "enumClassName": "com.example.CheckoutVariant" }
Data class{ "type": "DATA_CLASS", "dataClassName": "com.example.Policy", "value": { ... } }

Boundary Semantics

  • Successful decode/load materializes trusted configuration.
  • Invalid shape or unresolved feature keys return typed ParseError through Result.failure.
  • Failed loads do not partially mutate active runtime state.

Next Steps