TLP:AMBER - Limited disclosure, recipients can only spread this on a need-to-know basis within their organization and its clients. Recipients may share TLP:AMBER information with members of their own organization and its clients, but only on a need-to-know basis to protect their organization and its clients and prevent further harm
Introduction
This document outlines best practices for creating and modifying workflows in Rewst, aimed at ensuring optimal performance, consistency, and quality in automation implementations.
Design Principles
- Simplicity: Workflows should be user-friendly and easily understandable.
- Modularity: Break down complex workflows into smaller, reusable components.
-
Maintainability: Ensure workflows are easy to update and maintain
- Use templates and subworkflows wherever possible. If data is specific to a workflow but subject to change, define it as a workflow variable. For example, the SKU for a specific Microsoft license
Automation Build Standards
- Consistency: Use standardized practices for uniform experiences.
- Quality Assurance: Adhere to standards for efficient quality checks.
- Reusability: Employ modular designs for component reuse.
- Scalability: Design workflows to accommodate growing complexities.
- Efficiency: Avoid redundancy in processes.
- Knowledge Transfer: Facilitate collaboration and sharing within teams.
- Flexibility: Allow for easy integration of new features without significant reworks.
Designing and Testing Workflows
- Use pre-defined templates to ensure adherence to best practices.
- No Process? No Automation!
- Be sure your process is approved BEFORE starting to build.
- Develop and test workflows in a controlled environment (like a sandbox), make necessary amendments, and then sync to the live environment.
Automation Naming and Categorization
- Employ consistent naming conventions for clarity.
- Categorize workflows effectively using categories or tags for easier navigation and collaboration.
Managing Variables and Tasks
-
Output Variables: Every automation should have an output variable for consistency, such as
error_collectorwith{{ CTX.error_collector }}as its value. - Structuring Builds: Include essential tasks like 'BEGIN', 'END', and 'failure_detected' for robust build structures.
Error Handling
- Mandatory Actions: Every action must include an "On-Fail" transition for basic failure handling.
- Custom Transitions: Implement specific transitions for common errors, like handling "404" responses with actionable error logging.
- Error Collector Variable: Defined as a list object to accumulate error details. Errors are appended to this list when encountered.
Final Error Check
- Process: At the workflow's end, check the Error Collector for any entries.
- Action on Errors: If errors exist, route them to an actionable location, like the Professional Services Error Reporter workflow, for ticket creation and review.
Automation Log and Data Aliases
- Use automation logs for better debugging and logging.
- Handle data aliases carefully, separating complex ones into noops for easier debugging.
Working with Transitions
- Utilize conditions effectively to control workflow flow.
- Order transitions thoughtfully, understanding the difference between 'Follow All' and 'Follow First' approaches.
- Be mindful of task transition sensitivity criteria.
Limiting API Field Results
- Limit API field responses to only essential data for enhanced efficiency and performance.
Conclusion
By following these best practices, workflows in Rewst can be optimized for efficiency, reliability, and ease of maintenance, enhancing the overall automation experience.