{"id":19330731,"url":"https://github.com/versent/stax-orchestrator","last_synced_at":"2025-04-22T23:31:37.056Z","repository":{"id":75212256,"uuid":"477245036","full_name":"Versent/stax-orchestrator","owner":"Versent","description":"Stepfunctions to deploy Stax Accounts + Workloads","archived":false,"fork":false,"pushed_at":"2023-11-29T21:43:03.000Z","size":624,"stargazers_count":3,"open_issues_count":7,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T04:47:22.173Z","etag":null,"topics":["aws","lambda","step-functions"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Versent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null}},"created_at":"2022-04-03T05:15:41.000Z","updated_at":"2024-04-24T15:31:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"b7a3bdf7-4e26-4f57-b0b8-3abfd599d122","html_url":"https://github.com/Versent/stax-orchestrator","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fstax-orchestrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fstax-orchestrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fstax-orchestrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fstax-orchestrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Versent","download_url":"https://codeload.github.com/Versent/stax-orchestrator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250340242,"owners_count":21414504,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","lambda","step-functions"],"created_at":"2024-11-10T02:37:45.683Z","updated_at":"2025-04-22T23:31:36.614Z","avatar_url":"https://github.com/Versent.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stax Orchestrator\n\nThis application deploys step functions into your account that you can use to interact with [Stax](https://www.stax.io/) to CUD (create-update-delete) workloads in your AWS Account(s).\n\nStax provides an open source python [SDK](https://github.com/stax-labs/lib-stax-python-sdk) for use within projects to interact with Stax. We leverage the SDK to create and monitor workload operations within the serverless application.\n\nThis project contains source code and supporting files for Stax Orchestrator Serverless Application that you can deploy with the SAM CLI. It includes the following files and folders:\n\n- functions - Python code for the application's lambda functions to deploy workload and monitor the status of the workload task.\n- statemachines - Definition for the state machine that orchestrates the stock trading workflow.\n- cloudformation - Sample workload templates.\n- template.yaml - A template that defines the application's AWS resources.\n- Makefile - Run shell commands using make targets for a smooth developer experience.\n- events - Json files containing test data to run against your application code locally.\n- assets - Diagrams and other assets.\n\n## Stax Orchestrator Architecture Diagram\n\n![Stax Orchestrator Architecture Diagram](docs/StaxOrchestrator.png)\n\n### Resources Created in your AWS Account\n\nThis serverless application deploys the following resources in your AWS Account,\n\n* Workload Step Function - Creates a Stax workload and triggers Task Watcher Step Function to monitor the workload deployment status.\n    * Validate Input Lambda - Validates user provided input.\n    * Create Workload Lambda - Invokes Stax Api to create a workload.\n    * Update Workload Lambda - Invokes Stax Api to create a workload.\n    * Delete Workload Lambda - Invokes Stax Api to delete a workload.\n* Task Watcher Step Function - Monitors the lifecycle of a workload task in progress and reports with a success/failure to Create Workload Steop Function.\n    * Get Task Status Lambda - Invokes Stax Api to get the status of a workload task.\n\n\n### Pre-deployment requirements\n\nThe orchestrator requires API keys to be in the AWS account, follow [pre-deployment steps](docs/pre_deployment.md) to complete this.\n\n\n### Local Development and Deployment (optional)\n\nThis is an optional deployment approach to allow the flexibility to use a forked version of the repository and/or complete feature development and testing.\n\n**We encourage contributions via pull requests, so if there is a feature you have developed and are using, we want to hear about it**.\n\nFollow this guide [here](docs/direct_deployment.md) to deploy directly.\n\n* Add a [policy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html#:~:text=%7B%0A%20%20%20%20%22Version%22%3A%20%222012,aws%3ASourceAccount%22%3A%20%22123456789012%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D) to allow AWS's Serverless Service access the bucket to get artifacts.\n### Deployment using the AWS Serverless Repository\n\nDeployment of the stax-orchestrator can be completed by the AWS Console, AWS CLI or AWS Cloudformation.\nPlease following [Deploying Applications](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverlessrepo-consuming-applications.html) to use th AWS Console or AWS CLI.\n\nTo deploy using AWS Cloudformation, find the serverless application (name: `stax-orchestrator`) in the AWS Serverless Repository in your AWS account and click \"copy Cloudformation template\".\n\nExample:\n~~~yaml\nResources:\n  staxorchestrator:\n    Type: AWS::Serverless::Application\n    Properties:\n      Location:\n        ApplicationId: arn:aws:serverlessrepo:ap-southeast-2:754868638956:applications/stax-orchestrator\n        SemanticVersion: 0.1.7 # any specific version required\n      Parameters: \n        # Deploy workload cloudwatch dashboard to view stax orchestrator step function metrics and logs.\n        # DeployTaskWatcherCloudwatchDashboard: 'false' # Uncomment to override default value\n        # Deploy workload cloudwatch dashboard to view stax orchestrator step function metrics and logs.\n        # DeployWorkloadCloudwatchDashboard: 'false' # Uncomment to override default value\n        # Deploy workload state machine to CUD (create-update-delete) workloads.\n        # DeployWorkloadStateMachine: 'false' # Uncomment to override default value\n        # Enable X-Ray tracing for lambda functions\n        # EnableLambdaTracing: 'false' # Uncomment to override default value\n        # Enable X-Ray tracing for state machines\n        # EnableStateMachineTracing: 'false' # Uncomment to override default value\n        # Number of days to retain lambda function logs; applies to all lambda functions in this template\n        # LambdaLogGroupRetentionInDays: '60' # Uncomment to override default value\n        # Python logging level for Lambda functions\n        # PythonLoggingLevel: 'INFO' # Uncomment to override default value  \n      \n~~~\n\n### Using the Stax Orchestrator\n\nPlease follow [Use of Stax Orchestrator](./docs/use_of_stax_orchestrator.md) for instruction on how to deploy/delete and update Stax Workloads.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fversent%2Fstax-orchestrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fversent%2Fstax-orchestrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fversent%2Fstax-orchestrator/lists"}