diff --git a/CHANGELOG.md b/CHANGELOG.md
index b721fd872..dd3e8fdce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -83,6 +83,7 @@ Thankyou! -->
6. Added `reg_key` and `reg_value` to `Evidence Artifacts` object. #1078
7. Added `type_id` and associated entity objects to `Managed Entity`. #1094
8. Added `vendor_name`, `type`, `type_id` to object `package`. #1093
+ 9. Added `router`, `ids`, and `ips` entries to `type_id` enum in the `Endpoint` object. #1121
* #### Platform Extensions
### Bugfixes
@@ -103,6 +104,9 @@ Thankyou! -->
4. New Extension registration for Cisco #1074
5. Cleaned up MITRE trademarks and registrations for captions and descriptions.
6. Declared enums in dictionary.json have sane "0" (Unknown) and "99" (Other) declarations and descriptions where appropriate #1111
+ 7. Adds support for `suppress_checks` controls in attributes to allow tools to automatically validate conventions #1063
+ * Updated several attributes that do not follow conventions to disable linting for them
+
## [v1.2.0] - April 23rd, 2024
diff --git a/dictionary.json b/dictionary.json
index f6e69c54e..c556253bb 100644
--- a/dictionary.json
+++ b/dictionary.json
@@ -89,6 +89,7 @@
"activity_id": {
"caption": "Activity ID",
"description": "The normalized identifier of the activity that triggered the event.",
+ "suppress_checks": ["sibling_convention"],
"sibling": "activity_name",
"type": "integer_t",
"enum": {
@@ -3131,6 +3132,7 @@
"opcode_id": {
"caption": "DNS Opcode ID",
"description": "The DNS opcode ID specifies the normalized query message type as defined in RFC-5395.",
+ "suppress_checks": ["enum_convention"],
"type": "integer_t",
"enum": {
"0": {
@@ -3876,6 +3878,7 @@
"risk_level_id": {
"caption": "Risk Level ID",
"description": "The normalized risk level id.",
+ "suppress_checks": ["enum_convention"],
"sibling": "risk_level",
"type": "integer_t",
"enum": {
diff --git a/metaschema/attribute.schema.json b/metaschema/attribute.schema.json
index 43e58d287..68c10ff8d 100644
--- a/metaschema/attribute.schema.json
+++ b/metaschema/attribute.schema.json
@@ -73,4 +73,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/metaschema/dictionary-attribute.schema.json b/metaschema/dictionary-attribute.schema.json
index d41017033..e2cf310d0 100644
--- a/metaschema/dictionary-attribute.schema.json
+++ b/metaschema/dictionary-attribute.schema.json
@@ -53,9 +53,25 @@
"type": "boolean",
"description": "A flag used when the attribute represents an array of values rather than a single value."
},
+ "suppress_checks": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "anyOf": [
+ {
+ "const": "enum_convention",
+ "description": "Suppresses the convention that every Enum type has two common values with integer value 0 for Unknown and 99 for Other."
+ },
+ {
+ "const": "sibling_convention",
+ "description": "Suppresses the convention that a sibling field for a field that has an _id suffix should be the name with the _id suffix stripped."
+ }
+ ]
+ }
+ },
"observable": {
"$ref": "observable.schema.json"
}
},
"additionalProperties": false
-}
\ No newline at end of file
+}
diff --git a/objects/endpoint.json b/objects/endpoint.json
index 15f6b5dc6..332810968 100644
--- a/objects/endpoint.json
+++ b/objects/endpoint.json
@@ -94,7 +94,7 @@
},
"7": {
"caption": "IOT",
- "description": "A IOT (Internet of Things) device."
+ "description": "An IOT (Internet of Things) device."
},
"8": {
"caption": "Browser",
@@ -111,6 +111,18 @@
"11": {
"caption": "Hub",
"description": "A networking hub."
+ },
+ "12": {
+ "caption": "Router",
+ "description": "A networking router."
+ },
+ "13": {
+ "caption": "IDS",
+ "description": "An intrusion detection system."
+ },
+ "14": {
+ "caption": "IPS",
+ "description": "An intrusion prevention system."
}
},
"requirement": "recommended"