- Add Gitea Actions workflow; point README to gitea.d-bis.org/Sankofa_Phoenix/SMOA - Expand .gitignore for Spring H2 data, secrets, Kotlin .kotlin/, tooling - Track docs/api/generated ReDoc bundle; refresh api docs README - Android: network/auth/sync, UI shell, tests; backend credentials/integrity APIs - Docs, scripts (generate-api-docs), modules and core updates Made-with: Cursor
78 lines
2.7 KiB
JSON
78 lines
2.7 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://smoa.dev/schemas/credential-payload-mil_std_129.schema.json",
|
|
"title": "Credential sync payload — MIL-STD-129 style military ID",
|
|
"description": "JSON shape for CredentialSyncRequest.payload only (credentialType on the sync request body). Use when request.credentialType is mil_std_129. Aligns with com.smoa.core.barcode.formats.MILSTD129Credential.",
|
|
"type": "object",
|
|
"required": [
|
|
"serviceCode",
|
|
"lastName",
|
|
"firstName",
|
|
"socialSecurityNumber",
|
|
"dateOfBirth",
|
|
"expirationDate",
|
|
"issueDate",
|
|
"cardNumber"
|
|
],
|
|
"properties": {
|
|
"completeCredentialDomain": {
|
|
"type": "string",
|
|
"enum": ["payment", "piv_pki", "nfc_access", "mobile"],
|
|
"description": "Optional mirror of Complete Credential CredentialRef.domain."
|
|
},
|
|
"issuingAuthority": {
|
|
"$ref": "credential-authority.schema.json#/$defs/IssuingAuthorityContext",
|
|
"description": "Use government.serviceBranch, ministryOrDepartment (defense), and organizationalUnit (command) for multi-country defense organizations."
|
|
},
|
|
"serviceCode": {
|
|
"type": "string",
|
|
"description": "National service branch or component code (army, navy, air force, gendarmerie, etc.)."
|
|
},
|
|
"rank": { "type": "string" },
|
|
"lastName": { "type": "string" },
|
|
"firstName": { "type": "string" },
|
|
"middleInitial": {
|
|
"type": "string",
|
|
"maxLength": 4,
|
|
"description": "Single letter or short form used on ID."
|
|
},
|
|
"socialSecurityNumber": {
|
|
"type": "string",
|
|
"description": "National military ID number, service number, or last-4 style surrogate per policy; do not use full PII where prohibited."
|
|
},
|
|
"dateOfBirth": {
|
|
"type": "string",
|
|
"pattern": "^\\d{8}$",
|
|
"description": "YYYYMMDD."
|
|
},
|
|
"expirationDate": {
|
|
"type": "string",
|
|
"pattern": "^\\d{8}$",
|
|
"description": "YYYYMMDD."
|
|
},
|
|
"issueDate": {
|
|
"type": "string",
|
|
"pattern": "^\\d{8}$",
|
|
"description": "YYYYMMDD."
|
|
},
|
|
"cardNumber": {
|
|
"type": "string",
|
|
"description": "Document serial or PAN printed on the card."
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"description": "Unit, ship, squadron, station, or major command text."
|
|
},
|
|
"clearanceLevel": {
|
|
"type": "string",
|
|
"description": "National classification marking as shown or as tokenized for sync (policy-dependent)."
|
|
},
|
|
"extensions": {
|
|
"type": "object",
|
|
"description": "Coalition badge codes, NATO stock number refs, or country-specific pay grade / MOS fields.",
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|