0173ceecb3fba2d32a2dcfa8cf4033f1b68d1a7a
Simpl-Open Credential Delivery
A Dagster data service for generating Gitea credentials and delivering them to an application consumer by email.
Description
This service extends the standard Dagster workflow template with a credential provisioning flow for Simpl-Open.
The workflow:
- receives a repository identifier and consumer details
- generates Gitea credentials and repository access
- sends the generated credentials by email
Project Structure
simpl_open_credential_delivery/
├── src/
│ └── simpl_open_credential_delivery/
│ ├── repository.py
│ ├── config/
│ ├── hooks/
│ ├── jobs/
│ ├── models/
│ ├── ops/
│ └── services/
├── tests/
├── documents/
├── yaml/
├── Dockerfile
├── pyproject.toml
├── requirements.txt
└── workspace.yaml
Getting Started
Prerequisites
- Python 3.12+
- uv or pip for dependency management
Installation
uv sync
Or with pip:
pip install -r requirements.txt
Run Dagster
dagster dev
Environment Variables
Gitea Integration
GITEA_BASE_URL: Base URL of the Gitea instanceGITEA_ADMIN_TOKEN: Admin token used to provision users, tokens, and repository accessGITEA_DEFAULT_OWNER(optional): Default repository owner used when the repository identifier is not fully qualified
Email Delivery
SMTP_HOST: SMTP server hostnameSMTP_PORT: SMTP server portSMTP_USERNAME(optional): SMTP usernameSMTP_PASSWORD(optional): SMTP passwordSMTP_USE_TLS(defaulttrue): Enable STARTTLSSMTP_FROM_ADDRESS: Sender email address
Workflow Input
The workflow accepts the following high-level inputs:
repository_identifierconsumer_emailwith default literal${CONSUMER_EMAIL}access_level
Email subject and body templates are read from environment variables:
EMAIL_SUBJECT_TEMPLATEEMAIL_BODY_TEMPLATE
Jobs
simpl_open_credentials_delivery_workflow
Provision Gitea access credentials and send them by email to the consumer.
Development
Tests
pytest
Docker Image
docker build -t simpl-open-credential-delivery:latest .
License
See LICENSE file for details.
Authors
- Mat Basile
Version
0.1.0
Description
Languages
Python
99.2%
Dockerfile
0.8%