feat: prepare ARR for controlled public deployment
This commit is contained in:
196
prompts/arr_opera_daily_processing_result.schema.json
Normal file
196
prompts/arr_opera_daily_processing_result.schema.json
Normal file
@@ -0,0 +1,196 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "ARR authenticated Opera daily processing result",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["signed_envelope_version", "payload", "signature"],
|
||||
"properties": {
|
||||
"signed_envelope_version": {
|
||||
"type": "string",
|
||||
"const": "arr-processing-signed-1"
|
||||
},
|
||||
"payload": { "$ref": "#/$defs/result" },
|
||||
"signature": { "$ref": "#/$defs/signature" }
|
||||
},
|
||||
"$defs": {
|
||||
"opaqueId": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
|
||||
},
|
||||
"sha256": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9a-f]{64}$"
|
||||
},
|
||||
"signature": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["algorithm", "key_id", "issued_at", "nonce", "value"],
|
||||
"properties": {
|
||||
"algorithm": { "type": "string", "const": "hmac-sha256" },
|
||||
"key_id": { "$ref": "#/$defs/opaqueId" },
|
||||
"issued_at": { "type": "string", "format": "date-time" },
|
||||
"nonce": { "$ref": "#/$defs/opaqueId" },
|
||||
"value": { "$ref": "#/$defs/sha256" }
|
||||
}
|
||||
},
|
||||
"baseFile": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"file_handle",
|
||||
"original_filename",
|
||||
"sha256",
|
||||
"byte_size",
|
||||
"mime_type"
|
||||
],
|
||||
"properties": {
|
||||
"file_handle": { "$ref": "#/$defs/opaqueId" },
|
||||
"original_filename": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 255,
|
||||
"pattern": "^[^/\\\\]+$"
|
||||
},
|
||||
"sha256": { "$ref": "#/$defs/sha256" },
|
||||
"byte_size": { "type": "integer", "minimum": 0 },
|
||||
"mime_type": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"dailyReport": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/baseFile" },
|
||||
{
|
||||
"properties": {
|
||||
"original_filename": { "pattern": "^[^/\\\\]+\\.xlsx$" },
|
||||
"byte_size": { "maximum": 104857600 },
|
||||
"mime_type": {
|
||||
"const": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"resultJson": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/baseFile" },
|
||||
{
|
||||
"properties": {
|
||||
"original_filename": { "pattern": "^[^/\\\\]+\\.json$" },
|
||||
"byte_size": { "maximum": 5242880 },
|
||||
"mime_type": { "const": "application/json" }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"structuredResult": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/baseFile" },
|
||||
{
|
||||
"properties": {
|
||||
"original_filename": { "pattern": "^[^/\\\\]+\\.json$" },
|
||||
"byte_size": { "maximum": 52428800 },
|
||||
"mime_type": { "const": "application/json" }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"exceptionReport": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/baseFile" },
|
||||
{
|
||||
"properties": {
|
||||
"original_filename": { "pattern": "^[^/\\\\]+\\.xlsx$" },
|
||||
"byte_size": { "maximum": 20971520 },
|
||||
"mime_type": {
|
||||
"const": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"result": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"contract_version",
|
||||
"delivery_id",
|
||||
"job_id",
|
||||
"attempt_no",
|
||||
"remote_run_id",
|
||||
"status",
|
||||
"business_date",
|
||||
"processor_version",
|
||||
"rule_set_sha256",
|
||||
"result_schema_version",
|
||||
"artifacts"
|
||||
],
|
||||
"properties": {
|
||||
"contract_version": {
|
||||
"type": "string",
|
||||
"const": "arr-opera-daily-result-1"
|
||||
},
|
||||
"delivery_id": { "$ref": "#/$defs/opaqueId" },
|
||||
"job_id": { "$ref": "#/$defs/opaqueId" },
|
||||
"attempt_no": { "type": "integer", "minimum": 1, "maximum": 9999 },
|
||||
"remote_run_id": { "$ref": "#/$defs/opaqueId" },
|
||||
"status": { "type": "string", "enum": ["success", "failed"] },
|
||||
"business_date": { "type": ["string", "null"], "format": "date" },
|
||||
"processor_version": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$"
|
||||
},
|
||||
"rule_set_sha256": { "$ref": "#/$defs/sha256" },
|
||||
"result_schema_version": { "type": "string", "const": "3.0" },
|
||||
"artifacts": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"daily_report",
|
||||
"result_json",
|
||||
"structured_result_json",
|
||||
"exception_report"
|
||||
],
|
||||
"properties": {
|
||||
"daily_report": {
|
||||
"oneOf": [{ "$ref": "#/$defs/dailyReport" }, { "type": "null" }]
|
||||
},
|
||||
"result_json": { "$ref": "#/$defs/resultJson" },
|
||||
"structured_result_json": { "$ref": "#/$defs/structuredResult" },
|
||||
"exception_report": {
|
||||
"oneOf": [{ "$ref": "#/$defs/exceptionReport" }, { "type": "null" }]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"allOf": [
|
||||
{
|
||||
"if": {
|
||||
"properties": { "status": { "const": "success" } },
|
||||
"required": ["status"]
|
||||
},
|
||||
"then": {
|
||||
"properties": {
|
||||
"business_date": { "type": "string", "format": "date" },
|
||||
"artifacts": {
|
||||
"properties": {
|
||||
"daily_report": { "$ref": "#/$defs/dailyReport" },
|
||||
"exception_report": { "type": "null" }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"else": {
|
||||
"properties": {
|
||||
"artifacts": {
|
||||
"properties": {
|
||||
"daily_report": { "type": "null" },
|
||||
"exception_report": { "$ref": "#/$defs/exceptionReport" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user