The Giga DataOps Platform project follows the concept of Trunk-Based Development,
wherein User Stories are worked on PRs. PRs then get merged to main
once approved by
another developer.
The main
branch serves as the most up-to-date version of the code base.
Refer to Conventional Commits.
[<Feature/Fix/Release/Hotfix>](<issue-id>) <Short desc>
- Branch off from
main
to ensure you get the latest code. - Name your branch according to the Naming Conventions.
- Keep your commits self-contained and your PRs small and tailored to a specific feature as much as possible.
- Push your commits, open a PR and fill in the PR template.
- Request a review from 1 other developer.
- Once approved, rebase/squash your commits into
main
. Rule of thumb:- If the PR contains 1 or 2 commits, perform a Rebase.
- If the PR contains several commits that build toward a larger feature, perform a Squash.
- If the PR contains several commits that are relatively unrelated (e.g., an assortment of bug fixes), perform a Rebase.
azure/
- Contains all configuration for Azure DevOps pipelines.data_sharing/
- Contains all custom Data Sharing Proxy code.docs/
- This folder contains all Markdown files for creating Backstage TechDocs.infra/
- Contains all Kubernetes & Helm configuration.scripts/
- Contains custom reusable scripts.
- Kubernetes
- If you are using Docker Desktop on Windows, you can use the bundled Kubernetes distribution.
- Helm
Refer to the Development section in the docs of unicef/giga-dagster.
git clone
the repository to your workstation.- Run initial setup:
task setup
Data Sharing has its own .env
file. The contents of this file can be provided upon
request. There are also .env.example
files which you can use as reference. Copy the
contents of this file into a new file named .env
in the same directory, then supply
your own values.
Ensure that the Pre-requisites have already been set up and all the necessary
command-line executables are in your PATH
.
# spin up Docker containers
task
# Follow Docker logs
task logs
# List all tasks (inspect Taskfile.yml to see the actual commands being run)
task -l
At the end of your development tasks, stop the containers to free resources:
task stop
- Run the following to create the database tables and seed the initial roles and admin
token:
task migrate task load-fixtures -- roles api_keys
- To interact with
the Delta Sharing server you can:
- Access the Swagger UI at https://localhost:5000 and use the built-in Try it out examples.
- Use an API testing tool like Postman or Insomnia to send requests to the server.
- To get the initial bearer token, refer to the
.env
you created earlier and look for the keysADMIN_API_KEY
andADMIN_API_SECRET
. The admin bearer token is constructed asADMIN_API_KEY:ADMIN_API_SECRET