Zod Schemas
Closed this issue · 1 comments
seansica commented
Populate ATT&CK Schemas
Description
We need to populate all the ATT&CK schemas based on the template provided. Each schema should be created in its own file and should extend the AttackCoreSDOSchema
with appropriate fields and validations.
Tasks
- Create a new file for each schema in the appropriate directory.
- Copy the schema template into each file.
- Replace placeholder names with the appropriate schema name.
- Add all necessary fields specific to each schema type.
- Implement appropriate validations and error messages for each field.
- Ensure consistency with STIX and ATT&CK specifications. (See docs/summary.md for help)
Schema Assignments and Status
Schema Module | Assigned To | Status | Reviewer |
---|---|---|---|
campaign.schema.ts | @clemiller | Done ✅ | @seansica |
matrix.schema.ts | @erinehall | Done ✅ | @seansica |
group.schema.ts | @erinehall | Done ✅ | @seansica |
collection.schema.ts | @clemiller | Done ✅ | @seansica |
tactic.schema.ts | @clemiller | Done ✅ | @seansica |
technique.schema.ts | @clemiller | Done ✅ | @seansica |
asset.schema.ts | @clemiller | Done ✅ | @seansica |
software.schema.ts | @adpare | Done ✅ | @seansica |
tool.schema.ts | @adpare | Done ✅ | @seansica |
malware.schema.ts | @adpare | Done ✅ | @seansica |
identity.schema.ts | @adpare | Done ✅ | @seansica |
mitigation.schema.ts | @erinehall | Done ✅ | @seansica |
marking-definition.schema.ts | @erinehall | Done ✅ | @seansica |
data-source.schema.ts | @erinehall | Done ✅ | @seansica |
data-component.schema.ts | @erinehall | Done ✅ | @seansica |
relationship.schema.ts (sro) | @clemiller | Done ✅ | @seansica |
stix-bundle.schema.ts | @adpare | Done ✅ | @seansica |
Resources
Definition of Done
- All assigned schemas are implemented and extend
AttackCoreSDOSchema
. - Each schema includes all necessary fields as per STIX and ATT&CK specifications.
- Appropriate validations and error messages are in place for each field.
- Code follows the established design and naming convention.
- Examples doc created. (See existing examples for inspiration).
- Jest test suite created. (See STIXIdentifier tests for inspiration).
Additional Notes
- If you encounter any fields or validations that you think should be common across multiple schemas, please discuss with the team about adding them to the
common-properties.ts
file. - For complex schemas like Campaign and Matrix, feel free to reach out to the team for collaboration or clarification.
- Remember to use the
z.describe()
method to add descriptions to each field for better documentation. - Please update the status in the table as you progress: "Not Started" → "In Progress" → "Ready for Review" → "Completed"
Please comment on this issue if you have any questions or need clarification on any aspect of the schema implementation.
seansica commented