SAD¶
Overview¶
The project to build the python client
SAD - System architechture design¶
Logic View¶
flowchart LR
client[Python Submarine Client] -- interactive --> api[API Client]
For the API client, it served at following table
Environment | URL |
---|---|
Staging | https://staging-submarine-2yrayayjeq-as.a.run.app |
Production | internal.api.data.innotech.vn |
Development¶
Tech Stack¶
-
Build package using
hatch
-
Storage and CICD using
GitHub
andGitHub Action
-
Enforce code-regulation by
pre-commit
-
Using
ruff
for code QA. -
Documentation by mkdocs on mkdocs-material theme
Operation¶
For deployment test in schedule¶
- Build test based on scheduler that trigger test on production
flowchart LR
hatch[hatch test]
otter[otter]
channel[#0-test-application]
bucket["bucket"]
queue["queue"]
executor["executor"]
subgraph gb["Cloud Build"]
hatch
end
subgraph gs["Cloud Storage"]
bucket
end
subgraph wf["Workflow"]
queue --> executor
end
subgraph inno_trans["inno-transflow"]
otter
end
subgraph slack["Slack"]
channel
end
gb --> |save output to file json| bucket
bucket --> |execute| queue
executor --> |trigger| otter
otter --> |send message| channel
Service Account and Permissions¶
SA name | Role | Description |
---|---|---|
sa-viper | roles/monitoring.metricWriter | Writing monitoring data to a metrics scope |
roles/serviceusage.serviceUsageConsumer | ||
roles/serviceusage.serviceUsageViewer | ||
roles/errorreporting.writer | Send error events to Error Reporting | |
roles/logging.logWriter | Write log entries into Cloud Logging | |
roles/cloudscheduler.admin | Create and update Scheduler job | |
roles/cloudbuild.builds.builder | Run trigger the Cloud Build job | |
roles/iam.serviceAccountTokenCreator | To impersonate a service account | |
roles/iam.serviceAccountUser | Impersonate SA in order to attach that SA to resource | |
roles/run.viewer | View the state of all Cloud Run resources | |
roles/workflows.invoker | Access to execute workflows and manage the executions |
Support¶
Clean the cache and related to build
Appendix¶
Appendix A: Record of Changes¶
Table: Record of changes
Version | Date | Author | Description of Change |
---|---|---|---|
0.1.0 | 06/04/2024 | Bao Truong | Initation documentation |