@agent-ix/spec-objects-security 0.5.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +2 -0
  2. package/manifest.yaml +247 -26
  3. package/package.json +8 -2
  4. package/schemas/Asset.json +78 -0
  5. package/schemas/AttackSurface.json +55 -0
  6. package/schemas/AuditEvent.json +57 -0
  7. package/schemas/AuditFinding.json +67 -0
  8. package/schemas/AuthFlow.json +69 -0
  9. package/schemas/ConfidentialityLevel.json +13 -0
  10. package/schemas/Control.json +83 -0
  11. package/schemas/ControlEffectiveness.json +12 -0
  12. package/schemas/ControlMapping.json +26 -0
  13. package/schemas/CorsPolicy.json +46 -0
  14. package/schemas/CsrfToken.json +46 -0
  15. package/schemas/DataClassification.json +61 -0
  16. package/schemas/DefaultedField.json +14 -0
  17. package/schemas/EffectivenessField.json +15 -0
  18. package/schemas/EncryptionKey.json +78 -0
  19. package/schemas/FindingStatus.json +14 -0
  20. package/schemas/FlowStep.json +24 -0
  21. package/schemas/IdentityField.json +15 -0
  22. package/schemas/Impact.json +14 -0
  23. package/schemas/ImpactField.json +15 -0
  24. package/schemas/JwtClaim.json +49 -0
  25. package/schemas/LevelField.json +15 -0
  26. package/schemas/Likelihood.json +14 -0
  27. package/schemas/LikelihoodField.json +15 -0
  28. package/schemas/MfaFactorKind.json +12 -0
  29. package/schemas/MfaMethod.json +69 -0
  30. package/schemas/OccurrenceField.json +14 -0
  31. package/schemas/OccurrenceTypeRef.json +15 -0
  32. package/schemas/PasswordPolicy.json +40 -0
  33. package/schemas/Permission.json +49 -0
  34. package/schemas/Policy.json +52 -0
  35. package/schemas/Risk.json +79 -0
  36. package/schemas/Role.json +55 -0
  37. package/schemas/Scope.json +49 -0
  38. package/schemas/Secret.json +78 -0
  39. package/schemas/SecretLifecycle.json +14 -0
  40. package/schemas/SessionConfig.json +43 -0
  41. package/schemas/Severity.json +14 -0
  42. package/schemas/SeverityField.json +15 -0
  43. package/schemas/StatusField.json +15 -0
  44. package/schemas/StrideCategory.json +15 -0
  45. package/schemas/StrideCategoryField.json +15 -0
  46. package/schemas/Threat.json +67 -0
  47. package/schemas/TrustBoundary.json +69 -0
  48. package/schemas/TrustLevel.json +12 -0
  49. package/schemas/TrustLevelField.json +15 -0
  50. package/schemas/Vulnerability.json +70 -0
  51. package/skeletons/asset.md +22 -14
  52. package/skeletons/asset.sysml.md +27 -0
  53. package/skeletons/attack_surface.md +21 -18
  54. package/skeletons/audit_event.md +31 -18
  55. package/skeletons/audit_finding.md +22 -18
  56. package/skeletons/auth_flow.md +56 -21
  57. package/skeletons/control.md +45 -16
  58. package/skeletons/cors_policy.md +33 -17
  59. package/skeletons/csrf_token.md +17 -13
  60. package/skeletons/data_classification.md +23 -18
  61. package/skeletons/encryption_key.md +19 -12
  62. package/skeletons/jwt_claim.md +25 -14
  63. package/skeletons/mfa_method.md +17 -11
  64. package/skeletons/password_policy.md +35 -20
  65. package/skeletons/permission.md +18 -12
  66. package/skeletons/policy.md +33 -17
  67. package/skeletons/risk.md +20 -14
  68. package/skeletons/role.md +20 -13
  69. package/skeletons/scope.md +18 -12
  70. package/skeletons/secret.md +23 -16
  71. package/skeletons/secret.sysml.md +29 -0
  72. package/skeletons/session_config.md +35 -18
  73. package/skeletons/threat.md +22 -11
  74. package/skeletons/threat.sysml.md +26 -0
  75. package/skeletons/trust_boundary.md +51 -16
  76. package/skeletons/vulnerability.md +18 -15
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/AttackSurface.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "fields": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
10
+ },
11
+ "minItems": 1,
12
+ "contains": {
13
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/IdentityField.json"
14
+ }
15
+ },
16
+ "clauses": {
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
20
+ }
21
+ },
22
+ "relations": {
23
+ "type": "array",
24
+ "items": {
25
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/RelationDecl.json"
26
+ }
27
+ },
28
+ "exposes": {
29
+ "type": "array",
30
+ "items": {
31
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/SemanticId.json"
32
+ }
33
+ }
34
+ },
35
+ "required": [
36
+ "fields"
37
+ ],
38
+ "unevaluatedProperties": {
39
+ "not": {}
40
+ },
41
+ "description": "The reachable surface an attacker can address. `operations` is forbidden by the seal.",
42
+ "allOf": [
43
+ {
44
+ "properties": {
45
+ "fields": {
46
+ "items": {
47
+ "not": {
48
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ ]
55
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/AuditEvent.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "fields": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
10
+ },
11
+ "minItems": 1,
12
+ "contains": {
13
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/OccurrenceField.json"
14
+ }
15
+ },
16
+ "clauses": {
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
20
+ }
21
+ },
22
+ "source": {
23
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/SemanticId.json"
24
+ }
25
+ },
26
+ "required": [
27
+ "fields"
28
+ ],
29
+ "unevaluatedProperties": {
30
+ "not": {}
31
+ },
32
+ "description": "An auditable event declaration.\n\nThe declared shape carries no identity field: occurrence identity belongs to\nthe runtime record, not the declaration. It must carry at least one\noccurrence field (a `Timestamp`), and no field carries a default — an audit\ndeclaration that pins a literal payload value is carrying the record rather\nthan declaring it. `operations` and `relations` are forbidden by the seal.",
33
+ "allOf": [
34
+ {
35
+ "properties": {
36
+ "fields": {
37
+ "items": {
38
+ "not": {
39
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/IdentityField.json"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ },
45
+ {
46
+ "properties": {
47
+ "fields": {
48
+ "items": {
49
+ "not": {
50
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+ ]
57
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/AuditFinding.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "fields": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
10
+ },
11
+ "minItems": 1,
12
+ "contains": {
13
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/IdentityField.json"
14
+ }
15
+ },
16
+ "clauses": {
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
20
+ }
21
+ },
22
+ "relations": {
23
+ "type": "array",
24
+ "items": {
25
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/RelationDecl.json"
26
+ }
27
+ },
28
+ "status": {
29
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/FindingStatus.json"
30
+ },
31
+ "traces_to": {
32
+ "type": "array",
33
+ "items": {
34
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/SemanticId.json"
35
+ }
36
+ }
37
+ },
38
+ "required": [
39
+ "fields"
40
+ ],
41
+ "unevaluatedProperties": {
42
+ "not": {}
43
+ },
44
+ "description": "One audit observation. `operations` is forbidden by the seal.",
45
+ "allOf": [
46
+ {
47
+ "properties": {
48
+ "fields": {
49
+ "contains": {
50
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/StatusField.json"
51
+ }
52
+ }
53
+ }
54
+ },
55
+ {
56
+ "properties": {
57
+ "fields": {
58
+ "items": {
59
+ "not": {
60
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ ]
67
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/AuthFlow.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "operations": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/OperationDecl.json"
10
+ },
11
+ "minItems": 1
12
+ },
13
+ "fields": {
14
+ "type": "array",
15
+ "items": {
16
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
17
+ }
18
+ },
19
+ "clauses": {
20
+ "type": "array",
21
+ "items": {
22
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
23
+ }
24
+ },
25
+ "steps": {
26
+ "type": "array",
27
+ "items": {
28
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/FlowStep.json"
29
+ }
30
+ }
31
+ },
32
+ "required": [
33
+ "operations"
34
+ ],
35
+ "unevaluatedProperties": {
36
+ "not": {}
37
+ },
38
+ "description": "An authentication or authorization exchange. A flow is its exchanges, so\n`operations` is required. `relations` is forbidden by the seal, and no field\ncarries a default: a flow never embeds a credential.",
39
+ "allOf": [
40
+ {
41
+ "properties": {
42
+ "fields": {
43
+ "items": {
44
+ "not": {
45
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
46
+ }
47
+ }
48
+ }
49
+ }
50
+ },
51
+ {
52
+ "properties": {
53
+ "operations": {
54
+ "items": {
55
+ "properties": {
56
+ "params": {
57
+ "items": {
58
+ "not": {
59
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ ]
69
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/ConfidentialityLevel.json",
4
+ "type": "string",
5
+ "enum": [
6
+ "public",
7
+ "internal",
8
+ "confidential",
9
+ "restricted",
10
+ "unknown"
11
+ ],
12
+ "description": "How sensitive data is. `unknown` states that it was not classified."
13
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/Control.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "clauses": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
10
+ },
11
+ "minItems": 1
12
+ },
13
+ "fields": {
14
+ "type": "array",
15
+ "items": {
16
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
17
+ },
18
+ "minItems": 1,
19
+ "contains": {
20
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/EffectivenessField.json"
21
+ }
22
+ },
23
+ "operations": {
24
+ "type": "array",
25
+ "items": {
26
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/OperationDecl.json"
27
+ }
28
+ },
29
+ "effectiveness": {
30
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/ControlEffectiveness.json"
31
+ },
32
+ "mitigates": {
33
+ "type": "array",
34
+ "items": {
35
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/SemanticId.json"
36
+ }
37
+ },
38
+ "mappings": {
39
+ "type": "array",
40
+ "items": {
41
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/ControlMapping.json"
42
+ }
43
+ }
44
+ },
45
+ "required": [
46
+ "clauses",
47
+ "fields"
48
+ ],
49
+ "unevaluatedProperties": {
50
+ "not": {}
51
+ },
52
+ "description": "A mechanism that reduces an exposure. Effectiveness is always stated as a\nrow and never inferred. `relations` is forbidden by the seal.",
53
+ "allOf": [
54
+ {
55
+ "properties": {
56
+ "fields": {
57
+ "items": {
58
+ "not": {
59
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
60
+ }
61
+ }
62
+ }
63
+ }
64
+ },
65
+ {
66
+ "properties": {
67
+ "operations": {
68
+ "items": {
69
+ "properties": {
70
+ "params": {
71
+ "items": {
72
+ "not": {
73
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
82
+ ]
83
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/ControlEffectiveness.json",
4
+ "type": "string",
5
+ "enum": [
6
+ "not_assessed",
7
+ "ineffective",
8
+ "partially_effective",
9
+ "effective"
10
+ ],
11
+ "description": "How well a control works. `not_assessed` is both the unassessed member and\nthe least-granting one: no schema may supply any other value implicitly."
12
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/ControlMapping.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "framework": {
7
+ "type": "string",
8
+ "minLength": 1
9
+ },
10
+ "control_id": {
11
+ "type": "string",
12
+ "minLength": 1
13
+ },
14
+ "doc": {
15
+ "type": "string"
16
+ }
17
+ },
18
+ "required": [
19
+ "framework",
20
+ "control_id"
21
+ ],
22
+ "unevaluatedProperties": {
23
+ "not": {}
24
+ },
25
+ "description": "One external framework a control maps to."
26
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/CorsPolicy.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "clauses": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
10
+ },
11
+ "minItems": 1
12
+ },
13
+ "fields": {
14
+ "type": "array",
15
+ "items": {
16
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
17
+ }
18
+ },
19
+ "allowed_origins": {
20
+ "type": "array",
21
+ "items": {
22
+ "type": "string"
23
+ }
24
+ }
25
+ },
26
+ "required": [
27
+ "clauses"
28
+ ],
29
+ "unevaluatedProperties": {
30
+ "not": {}
31
+ },
32
+ "description": "The cross-origin rules a surface enforces. `operations` and `relations` are forbidden by the seal.",
33
+ "allOf": [
34
+ {
35
+ "properties": {
36
+ "fields": {
37
+ "items": {
38
+ "not": {
39
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
45
+ ]
46
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/CsrfToken.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "fields": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
10
+ },
11
+ "minItems": 1,
12
+ "contains": {
13
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/IdentityField.json"
14
+ }
15
+ },
16
+ "clauses": {
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
20
+ }
21
+ },
22
+ "binds": {
23
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/SemanticId.json"
24
+ }
25
+ },
26
+ "required": [
27
+ "fields"
28
+ ],
29
+ "unevaluatedProperties": {
30
+ "not": {}
31
+ },
32
+ "description": "A single-use anti-forgery token. `operations` is forbidden by the seal.",
33
+ "allOf": [
34
+ {
35
+ "properties": {
36
+ "fields": {
37
+ "items": {
38
+ "not": {
39
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
45
+ ]
46
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DataClassification.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "fields": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
10
+ },
11
+ "minItems": 1,
12
+ "contains": {
13
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/IdentityField.json"
14
+ }
15
+ },
16
+ "clauses": {
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
20
+ }
21
+ },
22
+ "level": {
23
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/ConfidentialityLevel.json"
24
+ },
25
+ "values": {
26
+ "type": "array",
27
+ "items": {
28
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/EnumValue.json"
29
+ }
30
+ }
31
+ },
32
+ "required": [
33
+ "fields"
34
+ ],
35
+ "unevaluatedProperties": {
36
+ "not": {}
37
+ },
38
+ "description": "A handling class for data. `operations` and `relations` are forbidden by the seal.",
39
+ "allOf": [
40
+ {
41
+ "properties": {
42
+ "fields": {
43
+ "contains": {
44
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/LevelField.json"
45
+ }
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "properties": {
51
+ "fields": {
52
+ "items": {
53
+ "not": {
54
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ ]
61
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "default": {
7
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/DefaultDecl.json"
8
+ }
9
+ },
10
+ "required": [
11
+ "default"
12
+ ],
13
+ "description": "A `FieldDecl` carrying a literal default. Used only as a negative predicate:\na declaration of secret material never carries the material (FR-006)."
14
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/EffectivenessField.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "const": "effectiveness"
9
+ }
10
+ },
11
+ "required": [
12
+ "name"
13
+ ],
14
+ "description": "A `FieldDecl` named `effectiveness`."
15
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/EncryptionKey.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "fields": {
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/FieldDecl.json"
10
+ },
11
+ "minItems": 1,
12
+ "contains": {
13
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/IdentityField.json"
14
+ }
15
+ },
16
+ "clauses": {
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/ClauseRef.json"
20
+ }
21
+ },
22
+ "operations": {
23
+ "type": "array",
24
+ "items": {
25
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/OperationDecl.json"
26
+ }
27
+ },
28
+ "lifecycle": {
29
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/SecretLifecycle.json"
30
+ },
31
+ "material_ref": {
32
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/SemanticId.json"
33
+ },
34
+ "custodian": {
35
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/SemanticId.json"
36
+ },
37
+ "algorithm": {
38
+ "$ref": "https://schemas.agent-ix.org/semantic-core/0.3.0/Identifier.json"
39
+ }
40
+ },
41
+ "required": [
42
+ "fields"
43
+ ],
44
+ "unevaluatedProperties": {
45
+ "not": {}
46
+ },
47
+ "description": "A cryptographic key.",
48
+ "allOf": [
49
+ {
50
+ "properties": {
51
+ "fields": {
52
+ "items": {
53
+ "not": {
54
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
55
+ }
56
+ }
57
+ }
58
+ }
59
+ },
60
+ {
61
+ "properties": {
62
+ "operations": {
63
+ "items": {
64
+ "properties": {
65
+ "params": {
66
+ "items": {
67
+ "not": {
68
+ "$ref": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/DefaultedField.json"
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ]
78
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-ix.org/agent-ix/spec-objects-security/FindingStatus.json",
4
+ "type": "string",
5
+ "enum": [
6
+ "open",
7
+ "in_remediation",
8
+ "remediated",
9
+ "risk_accepted",
10
+ "false_positive",
11
+ "unknown"
12
+ ],
13
+ "description": "Where an audit finding stands. `unknown` states that it was not triaged."
14
+ }