|
{ |
|
"code_standards": [ |
|
{ |
|
"category": "Security", |
|
"standards": [ |
|
{ |
|
"rule_id": "SEC001", |
|
"description": "Avoid hard-coded secrets such as passwords and API keys. Use secure storage solutions." |
|
}, |
|
{ |
|
"rule_id": "SEC002", |
|
"description": "Ensure all shell commands have proper sanitization to avoid command injection." |
|
}, |
|
{ |
|
"rule_id": "SEC003", |
|
"description": "Apply appropriate role-based access control to sensitive tasks to prevent unauthorized access." |
|
}, |
|
{ |
|
"rule_id": "SEC004", |
|
"description": "Ensure secrets are encrypted during storage and transit, and are accessed only when necessary." |
|
}, |
|
{ |
|
"rule_id": "SEC005", |
|
"description": "Check Secure Business Logic, ensuring critical automation tasks do not expose or misuse sensitive information." |
|
} |
|
] |
|
}, |
|
{ |
|
"category": "Idempotency", |
|
"standards": [ |
|
{ |
|
"rule_id": "IDP001", |
|
"description": "Ensure tasks are idempotent, such as using 'state: present' for package installation to avoid repeated actions." |
|
}, |
|
{ |
|
"rule_id": "IDP002", |
|
"description": "All configuration files should use templates to ensure consistent and predictable outputs across multiple runs." |
|
} |
|
] |
|
}, |
|
{ |
|
"category": "Best Practices", |
|
"standards": [ |
|
{ |
|
"rule_id": "BP001", |
|
"description": "Use standard modules for common tasks, such as 'apt' for package management and 'user' for managing users." |
|
}, |
|
{ |
|
"rule_id": "BP002", |
|
"description": "Use variables for values that are subject to change, ensuring maintainability and readability of the code." |
|
}, |
|
{ |
|
"rule_id": "BP003", |
|
"description": "Include meaningful task names for all Ansible tasks, making playbooks self-documenting." |
|
} |
|
] |
|
}, |
|
{ |
|
"category": "Readability", |
|
"standards": [ |
|
{ |
|
"rule_id": "RD001", |
|
"description": "All significant tasks must have clear and descriptive comments to explain their purpose." |
|
}, |
|
{ |
|
"rule_id": "RD002", |
|
"description": "Use meaningful variable names that convey the purpose clearly to ensure easy understanding for future developers." |
|
}, |
|
{ |
|
"rule_id": "RD003", |
|
"description": "Ensure proper formatting and indentation for better readability and adherence to Ansible's YAML syntax rules." |
|
} |
|
] |
|
}, |
|
{ |
|
"category": "Business Logic Security", |
|
"standards": [ |
|
{ |
|
"rule_id": "BLS001", |
|
"description": "Verify that business logic automation does not inadvertently alter data integrity or bypass critical business validations." |
|
}, |
|
{ |
|
"rule_id": "BLS002", |
|
"description": "Ensure all critical paths in business processes have appropriate error handling and logging for audit purposes." |
|
}, |
|
{ |
|
"rule_id": "BLS003", |
|
"description": "Critical business operations must include validations to prevent data loss or unauthorized modification." |
|
} |
|
] |
|
} |
|
] |
|
} |
|
|