Skip to main content
Version: 3.0.0

Repositories

Definition

Repositories in Ascend.io are version-controlled storage locations that house project artifacts, such as scripts, configurations, and other resources. They provide a structured way to manage and track changes to project components, ensuring consistency and maintainability over time.

Purpose

  • Source of Truth: Repositories serve as the source of truth for project resources, enabling teams to manage code, configurations, and data processing scripts in a controlled, versioned manner.
  • Collaboration and Version Tracking: They facilitate collaboration, track versions, and enable safe deployment of changes across environments.
  • Change Management: By connecting to a source control repository, Ascend.io ensures that all project modifications are documented, reversible, and accessible to team members.

Supported Repositories

  • Ascend.io integrates with any source control system that uses SSH, including GitHub, GitLab, Bitbucket, and other Git-compatible services.
  • Repositories can store various project artifacts, such as pipeline definitions, configuration files, data transformation scripts, and code components.

Key Functions

  • Version Control: Track changes to project files, allowing detailed audit trails, easy rollbacks, and accountability. Each change is documented with commit messages that provide context.
  • Branching and Merging: Develop new features or fix bugs in isolation using branches, then merge them into the main branch. This model supports collaborative development without disrupting live workflows.
  • Backup and Recovery: Repositories provide backups of critical project files, ensuring configurations and code are never lost. Teams can revert to previous states in case of errors, minimizing downtime.

Security and Access Management

  • Access to repositories is managed through SSH keys and other security protocols, ensuring only authorized users can make changes.
  • Role-based access controls refine permissions, restricting who can view, edit, or deploy project components.
  • Sensitive information, like passwords or API keys, is managed separately within profiles and vaults, keeping repositories focused on code and configurations.

Use Case Example

A data engineering team uses a Git repository to manage Ascend project files. They develop data transformation scripts on feature branches, conduct code reviews, and merge changes into the main branch once validated. The repository keeps a record of all modifications, ensuring controlled and documented updates. If a recent deployment introduces a bug, the team can quickly identify the problematic change and revert to a stable version, reducing production impact.

Integration with CI/CD Pipelines

Repositories can integrate with Continuous Integration/Continuous Deployment (CI/CD) tools, automating the testing and deployment of changes to the Ascend environment. This integration streamlines the release process, ensuring consistent validation before updates reach production.

Collaboration

Repositories support collaborative development by allowing multiple team members to work on the same project simultaneously. Through pull requests, code reviews, and issue tracking, teams can coordinate efforts, improve code quality, and maintain alignment on project goals.