Concepts Overview
This page provides an overview of the key concepts used in Packistry, explaining how various components like repositories, sources, users, tokens, and packages work together. Understanding these concepts will help you navigate the platform more effectively and make better use of the available features.
Repositories
A repository is a storage location where your packages are hosted. Repositories can be public or private, and they serve as the central location for managing and distributing your packages.
- Public Repositories: Accessible by anyone.
- Private Repositories: Restricted access, requiring deploy tokens or specific user permissions.
Sources
A source refers to an external system from which packages can be imported. This could be a platform like GitHub, GitLab, or any other supported package provider.
- Each source is associated with a provider (e.g., GitHub, Gitea).
- Sources also require an access token for authentication, which allows the system to fetch packages from the external provider.
Packages
A package is a unit of software or code that is stored in a repository and can be imported, managed, and distributed. Packages are central to the functionality of Packistry, as they represent the actual content you're working with.
- Packages are added to repositories and can be managed through various commands.
- You can delete packages when they are no longer relevant.
Deploy Tokens
Deploy tokens are used to grant access to private repositories. These tokens are typically used in CI/CD pipelines, automation tools, or by external services that need limited access to your repositories.
- Deploy tokens provide an easy way to securely grant access to packages in private repositories.
- Deploy Tokens are tied to specific repositories.
- Deploy Tokens can be recognized by the prefix
pkdt-
Personal Tokens
Personal tokens are used to grant access to private repositories your have access to. These tokens are typically used on your local machine.
- Personal tokens provide an easy way to securely grant access to packages in private repositories.
- Personal Tokens are tied to a specific user
- Personal Tokens can be recognized by the prefix
pkpat-
Users and Roles
Packistry allows you to manage users, each of whom is assigned a specific role. Roles define what actions a user can take:
- Admin: Full access to manage repositories, users, packages, and tokens.
- User: Limited access, often restricted to specific repositories.
You can assign repositories to individual users, granting them access only to the packages they need.
Authentication Sources
Packistry allows you to define one or multiple authentication sources, enabling Single Sign-On (SSO) using OAuth 2.0 and OpenID Connect. Authentication sources provide a seamless way for users to log in without managing separate credentials.
Supported Providers
Packistry currently supports the following authentication providers:
- OpenID Connect – Authenticate using an OpenID Connect-compatible provider, such as Okta, Keycloak, or Microsoft Azure AD (Entra ID).
- GitHub – Authenticate using your GitHub account.
- GitLab – Authenticate using your GitLab credentials.
- Bitbucket – Authenticate via Bitbucket's OAuth.
- Google – Use Google authentication for login.
Role-Based Access Control
When configuring an authentication source, you can assign a default role to users upon their first login.
Repository Access
You can define which repositories users will have access to when they authenticate through a specific authentication source. Access to the selected repositories is granted upon their first login. Enabling & Disabling Authentication Sources
Each authentication source can be toggled as Active or Inactive. When Inactive, users will be unable to sign in using that source. However, only the sign-in functionality will be deactivated deploy/personal tokens generated by users from that source will remain usable.