minder

module
v0.0.72 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 5, 2024 License: Apache-2.0

README

minder logo

Continuous integration | Coverage Status | | SLSA 3 |

Installation | Documentation | Releases

What is Minder?

Minder is an open source platform that helps development teams and open source communities build more secure software, and prove to others that what they’ve built is secure. Minder helps project owners proactively manage their security posture by providing a set of checks and policies to minimize risk along the software supply chain, and attest their security practices to downstream consumers.

Minder allows users to enroll repositories and define policy to ensure repositories and artifacts are configured consistently and securely. Policies can be set to alert only or auto-remediate. Minder provides a predefined set of rules and can also be configured to apply custom rules.

Minder can be deployed as a Helm chart and provides a CLI tool minder. Stacklok, a company supporting Minder, also provides a free-to-use hosted version of Minder (for public repositories only). Minder is designed to be extensible, allowing users to integrate with their existing tooling and processes.

Features

  • Repo configuration and security: Simplify configuration and management of security settings and policies across repos.
  • Proactive security enforcement: Continuously enforce best practice security configurations by setting granular policies to alert only or auto-remediate.
  • Artifact attestation: Continuously verify that packages are signed to ensure they’re tamper-proof, using the open source project Sigstore.
  • Dependency management: Manage dependency security posture by helping developers make better choices and enforcing controls. Minder is integrated with OSV and Trusty to enable policy-driven dependency management based on the risk level of dependencies.

Public Instance

Stacklok, a company supporting Minder, provides a free-to-use public instance of Minder. This is the default instance used when you use the minder CLI. This instance is available for public repositories only.


Getting Started (< 1 minute)

Getting up and running with Minder takes under a minute and is as easy as:

  1. Installing Minder
  2. Logging in to Minder
  3. and running minder quickstart to create your first profile.

In just a few seconds, you will register your repositories and enable secret scanning protection for all of them! 🤯

Installation

Choose your preferred method to install minder:

MacOS (Homebrew)

Make sure you have Homebrew installed.

brew install minder

Windows (Winget)

Make sure you have Winget installed.

winget install stacklok.minder

Download a release

Download the latest release from minder/releases.

Build it from source

Build minder and minder-server from source by following the build from source guide.

Logging in to Minder

To use minder with the public instance of Minder (api.stacklok.com), log in by running:

minder auth login

Upon completion, you should see that the Minder Server is set to api.stacklok.com.

Run Minder quickstart

The quickstart command guides you through creating your first profile in Minder, register your repositories, and enabling secret scanning protection for your repositories in seconds.

To do so, run:

minder quickstart

This will prompt you to enroll your provider, select the repositories you'd like, create the secret_scanning rule type and create a profile which enables secret scanning for the selected repositories.

To see the status of your profile, run:

minder profile status list --profile quickstart-profile --detailed

You should see the overall profile status and a detailed view of the rule evaluation statuses for each of your registered repositories.

Minder will continue to keep track of your repositories and will ensure to fix any drifts from the desired state by using the remediate feature or alert you, if needed, using the alert feature.

Congratulations! 🎉 You've now successfully created your first profile!

What's next?

You can now continue to explore Minder's features by adding or removing more repositories, create more profiles with various rules, and much more. There's a lot more to Minder than just secret scanning.

The secret_scanning rule is just one of the many rule types that Minder supports.

You can see the full list of ready-to-use rules and profiles maintained by Minder's team here - mindersec/minder-rules-and-profiles.

In case there's something you don't find there yet, Minder is designed to be extensible. This allows for users to create their own custom rule types and profiles and ensure the specifics of their security posture are attested to.

Now that you have everything set up, you can continue to run minder commands against the public instance of Minder where you can manage your registered repositories, create profiles, rules and much more, so you can ensure your repositories are configured consistently and securely.

For more information about minder, see:

  • minder CLI commands - Docs.
  • minder REST API Documentation - Docs.
  • minder rules and profiles maintained by Minder's team - GitHub.
  • Minder documentation - Docs.

Roadmap

The Minder community are actively working on new features and improvements for Minder.

You can find our roadmap here.

Should you wish to request or contribute a feature or improvement, please use the following issue template

Development

This section describes how to build and run Minder from source.

Build from source

Prerequisites

You'd need the following tools available - Go, Docker and Docker Compose.

To build and run minder-server, you will also need ko.

To run the test suite via make test, you will need gotestfmt and helm.

To invoke the run-docker make target, you will need yq.

Clone the repository

git clone git@github.com:mindersec/minder.git

Build

Run the following to build minder and minder-server (binaries will be present at ./bin/)

make build

To use minder with the public instance of Minder (api.stacklok.com), run:

minder auth login

Upon completion, you should see that the Minder Server is set to api.stacklok.com.

If you want to run minder against a local minder-server instance, proceed with the steps below.

Initial configuration

Create the initial configuration file for minder. You may do so by doing.

cp config/config.yaml.example config.yaml

Create the initial configuration file for minder-server. You may do so by doing.

cp config/server-config.yaml.example server-config.yaml

You'd also have to set up an OAuth2 application for minder-server to use. Once completed, update the configuration file with the appropriate values. See the documentation on how to do that - Docs.

Run minder-server

Start minder-server along with its dependant services (keycloak and postgres) by running:

make run-docker
Configure social login (GitHub)

minder-server uses Keycloak as an IAM. To log in, you'll need to set up a GitHub OAuth2 application and configure Keycloak to use it.

Create an OAuth2 application for GitHub here. Select New OAuth App and fill in the details. The callback URL should be http://localhost:8081/realms/stacklok/broker/github/endpoint. Create a new client secret for your OAuth2 client.

Using the client_id and client_secret you created above, enable GitHub login on Keycloak by running the following command:

make KC_GITHUB_CLIENT_ID=<client_id> KC_GITHUB_CLIENT_SECRET=<client_secret> github-login
Run minder

Ensure the config.yaml file is present in the current directory so minder can use it.

Run minder against your local instance of Minder (localhost:8090):

minder auth login

Upon completion, you should see that the Minder Server is set to localhost:8090.

By default, the minder CLI will point to the production Stacklok environment if a config file is not present, but creating the config.yaml for running the server will point the CLI at your local development environment. If you explicitly want to use a different instance, you can set the MINDER_CONFIG environment variable to point to a particular configuration. We have configurations for local development, the Stacklok production environment, and Stacklok staging environment (updated frequently) checked in to the config directory.

Development guidelines

You can find more detailed information about the development process in the Developer Guide.

Minder API

  • REST API documentation - Link.

  • Proto API documentation - Link.

  • Protobuf - Link.

  • OpenAPI/swagger spec (JSON) - Link.

Contributing

We welcome contributions to Minder. Please see our Contributing guide for more information.

Provenance

The Minder project follows the best practices for software supply chain security and transparency.

All released assets:

  • Have a generated and verifiable SLSA Build Level 3 provenance. For more information, see the SLSA website.
  • Have been signed and verified during release using the Sigstore project. This ensures that they are tamper-proof and can be verified by anyone.
  • Have an SBOM archive generated and published along with the release. This allows users to understand the dependencies of the project and their security posture.

License

Minder is licensed under the Apache 2.0 License.

Directories

Path Synopsis
cmd
cli
Package main provides the entrypoint for the minder cli
Package main provides the entrypoint for the minder cli
cli/app
Package app provides the root command for the minder CLI
Package app provides the root command for the minder CLI
cli/app/artifact
Package artifact provides the artifact subcommands
Package artifact provides the artifact subcommands
cli/app/auth
Package auth provides the auth command project for the minder CLI.
Package auth provides the auth command project for the minder CLI.
cli/app/auth/invite
Package invite provides the auth invite command for the minder CLI.
Package invite provides the auth invite command for the minder CLI.
cli/app/auth/offline_token
Package offline_token provides the auth offline_token command for the minder CLI.
Package offline_token provides the auth offline_token command for the minder CLI.
cli/app/common
Package common contains logic shared between multiple subcommands
Package common contains logic shared between multiple subcommands
cli/app/docs
Package apply provides the apply command for the minder CLI
Package apply provides the apply command for the minder CLI
cli/app/history
Package history provides the CLI subcommand for managing profile statuses
Package history provides the CLI subcommand for managing profile statuses
cli/app/profile
Package profile provides the CLI subcommand for managing profiles
Package profile provides the CLI subcommand for managing profiles
cli/app/profile/status
Package status provides the CLI subcommand for managing profile statuses
Package status provides the CLI subcommand for managing profile statuses
cli/app/project
Package project is the root command for the project subcommands
Package project is the root command for the project subcommands
cli/app/project/role
Package role is the root command for the role subcommands
Package role is the root command for the role subcommands
cli/app/provider
Package provider is the root command for the provider subcommands
Package provider is the root command for the provider subcommands
cli/app/quickstart
Package quickstart provides the quickstart command for the minder CLI which is used to provide the means to quickly get started with minder.
Package quickstart provides the quickstart command for the minder CLI which is used to provide the means to quickly get started with minder.
cli/app/repo
Package repo contains the repo logic for the control plane
Package repo contains the repo logic for the control plane
cli/app/ruletype
Package ruletype provides the CLI subcommand for managing rules
Package ruletype provides the CLI subcommand for managing rules
cli/app/set_project
Package set_project provides the version command for the minder CLI
Package set_project provides the version command for the minder CLI
cli/app/version
Package version provides the version command for the minder CLI
Package version provides the version command for the minder CLI
dev
Package main provides the entrypoint for the rule development cli
Package main provides the entrypoint for the rule development cli
dev/app
Package app provides the root command for the mindev CLI
Package app provides the root command for the mindev CLI
dev/app/bundles
Package bundles contains logic relating to mindpak bundles
Package bundles contains logic relating to mindpak bundles
dev/app/image
Package image provides the root command for the image subcommands
Package image provides the root command for the image subcommands
dev/app/rule_type
Package rule_type provides the root command for the ruletype subcommands
Package rule_type provides the root command for the ruletype subcommands
dev/app/testserver
Package testserver spawns a test server useful for integration testing.
Package testserver spawns a test server useful for integration testing.
reminder
Package main provides the entrypoint for the reminder service
Package main provides the entrypoint for the reminder service
reminder/app
Package app provides the cli subcommands for managing the reminder service
Package app provides the cli subcommands for managing the reminder service
server
Package main provides the entrypoint for the minder server
Package main provides the entrypoint for the minder server
server/app
Package app provides the entrypoint for the minder migrations
Package app provides the entrypoint for the minder migrations
Package database provides the database migration tooling for the minder application.
Package database provides the database migration tooling for the minder application.
mock
Package mockdb is a generated GoMock package.
Package mockdb is a generated GoMock package.
mock/fixtures
Package fixtures contains code for creating RepositoryService fixtures and is used in various parts of the code.
Package fixtures contains code for creating RepositoryService fixtures and is used in various parts of the code.
internal
api
Package api package api provides a gRPC interceptor that validates incoming requests.
Package api package api provides a gRPC interceptor that validates incoming requests.
assets
Package assets contains the static assets.
Package assets contains the static assets.
auth
Package auth contains the authentication logic for the control plane
Package auth contains the authentication logic for the control plane
auth/jwt
Package jwt provides the logic for reading and validating JWT tokens
Package jwt provides the logic for reading and validating JWT tokens
auth/jwt/mock
Package mock_jwt is a generated GoMock package.
Package mock_jwt is a generated GoMock package.
auth/jwt/noop
Package noop provides a no-op implementation of the Validator interface
Package noop provides a no-op implementation of the Validator interface
auth/keycloak
Package keycloak provides an implementation of the Keycloak IdentityProvider.
Package keycloak provides an implementation of the Keycloak IdentityProvider.
auth/keycloak/client
Package client provides primitives to interact with the openapi HTTP API.
Package client provides primitives to interact with the openapi HTTP API.
auth/mock
Package mock_auth is a generated GoMock package.
Package mock_auth is a generated GoMock package.
authz
Package authz provides the authorization utilities for minder
Package authz provides the authorization utilities for minder
authz/mock
Package mock provides a no-op implementation of the minder the authorization client
Package mock provides a no-op implementation of the minder the authorization client
constants
Package constants contains constants used throughout the application.
Package constants contains constants used throughout the application.
controlplane
Package controlplane contains the gRPC server implementation for the control plane
Package controlplane contains the gRPC server implementation for the control plane
controlplane/metrics
Package metrics defines the primitives available for the controlplane metrics
Package metrics defines the primitives available for the controlplane metrics
crypto
Package crypto provides cryptographic functions
Package crypto provides cryptographic functions
crypto/algorithms
Package algorithms contains implementations of various crypto algorithms for the crypto engine.
Package algorithms contains implementations of various crypto algorithms for the crypto engine.
crypto/keystores
Package keystores contains logic for loading encryption keys from a keystores
Package keystores contains logic for loading encryption keys from a keystores
crypto/keystores/mock
Package mock_keystores is a generated GoMock package.
Package mock_keystores is a generated GoMock package.
crypto/mock
Package mock_crypto is a generated GoMock package.
Package mock_crypto is a generated GoMock package.
db
db/embedded
Package embedded provides a test-only embedded Postgres database for testing queries.
Package embedded provides a test-only embedded Postgres database for testing queries.
db/fixtures
Package fixtures contains code for creating DB fixtures and is used in various parts of the code.
Package fixtures contains code for creating DB fixtures and is used in various parts of the code.
eea
Package eea provides objects and event handlers for the EEA.
Package eea provides objects and event handlers for the EEA.
email
Package email provides the email utilities for minder
Package email provides the email utilities for minder
email/awsses
Package awsses provides the email utilities for minder
Package awsses provides the email utilities for minder
email/noop
Package noop provides a noop email utilities for minder
Package noop provides a noop email utilities for minder
engine
Package engine provides an implementation of the profile-engine-related objects, interfaces and functionality.
Package engine provides an implementation of the profile-engine-related objects, interfaces and functionality.
engine/actions
Package actions provide necessary interfaces and implementations for processing actions, such as remediation and alerts.
Package actions provide necessary interfaces and implementations for processing actions, such as remediation and alerts.
engine/actions/alert
Package alert provides necessary interfaces and implementations for processing alerts.
Package alert provides necessary interfaces and implementations for processing alerts.
engine/actions/alert/noop
Package noop provides a fallback alert engine for cases where no alert is set.
Package noop provides a fallback alert engine for cases where no alert is set.
engine/actions/alert/security_advisory
Package security_advisory provides necessary interfaces and implementations for creating alerts of type security advisory.
Package security_advisory provides necessary interfaces and implementations for creating alerts of type security advisory.
engine/actions/remediate
Package remediate provides necessary interfaces and implementations for remediating rules.
Package remediate provides necessary interfaces and implementations for remediating rules.
engine/actions/remediate/gh_branch_protect
Package gh_branch_protect provides the github branch protection remediation engine
Package gh_branch_protect provides the github branch protection remediation engine
engine/actions/remediate/noop
Package noop provides a fallback remediation engine for cases where no remediation is set.
Package noop provides a fallback remediation engine for cases where no remediation is set.
engine/actions/remediate/pull_request
Package pull_request provides the pull request remediation engine
Package pull_request provides the pull request remediation engine
engine/actions/remediate/rest
Package rest provides the REST remediation engine
Package rest provides the REST remediation engine
engine/engcontext
Package engcontext defines the EngineContext type.
Package engcontext defines the EngineContext type.
engine/entities
Package entities contains internal helper functions to deal with, validate and print the Entity protobuf enum.
Package entities contains internal helper functions to deal with, validate and print the Entity protobuf enum.
engine/errors
Package errors provides errors for the evaluator engine
Package errors provides errors for the evaluator engine
engine/eval
Package eval provides necessary interfaces and implementations for evaluating rules.
Package eval provides necessary interfaces and implementations for evaluating rules.
engine/eval/homoglyphs/application
Package application contains the application logic for the homoglyphs rule type
Package application contains the application logic for the homoglyphs rule type
engine/eval/homoglyphs/communication
Package communication contains the communication logic for the homoglyphs rule type
Package communication contains the communication logic for the homoglyphs rule type
engine/eval/homoglyphs/domain
Package domain contains the domain logic for the homoglyphs rule type
Package domain contains the domain logic for the homoglyphs rule type
engine/eval/homoglyphs/domain/resources
Package resources contains resources used by the homoglyphs evaluators.
Package resources contains resources used by the homoglyphs evaluators.
engine/eval/homoglyphs/util
Package util contains utility functions for the homoglyphs evaluation engine
Package util contains utility functions for the homoglyphs evaluation engine
engine/eval/jq
Package jq provides the jq profile evaluator
Package jq provides the jq profile evaluator
engine/eval/pr_actions
Package pr_actions contains shared code to take on PRs
Package pr_actions contains shared code to take on PRs
engine/eval/rego
Package rego provides the rego rule evaluator
Package rego provides the rego rule evaluator
engine/eval/templates
Package templates contains template strings for evaluation details.
Package templates contains template strings for evaluation details.
engine/eval/trusty
Package trusty provides an evaluator that uses the trusty API
Package trusty provides an evaluator that uses the trusty API
engine/eval/vulncheck
Package vulncheck provides the vulnerability check evaluator
Package vulncheck provides the vulnerability check evaluator
engine/ingestcache
Package ingestcache a cache that is used to cache the results of ingesting data.
Package ingestcache a cache that is used to cache the results of ingesting data.
engine/ingester
Package ingester provides necessary interfaces and implementations for ingesting data for rules.
Package ingester provides necessary interfaces and implementations for ingesting data for rules.
engine/ingester/artifact
Package artifact provides the artifact ingestion engine
Package artifact provides the artifact ingestion engine
engine/ingester/builtin
Package builtin provides the builtin ingestion engine
Package builtin provides the builtin ingestion engine
engine/ingester/diff
Package diff provides the diff rule data ingest engine
Package diff provides the diff rule data ingest engine
engine/ingester/git
Package git provides the git rule data ingest engine
Package git provides the git rule data ingest engine
engine/ingester/rest
Package rest provides the REST rule data ingest engine
Package rest provides the REST rule data ingest engine
engine/interfaces
Package interfaces provides necessary interfaces and implementations for implementing engine plugins
Package interfaces provides necessary interfaces and implementations for implementing engine plugins
engine/mock
Package mock_engine is a generated GoMock package.
Package mock_engine is a generated GoMock package.
engine/options
Package options provides necessary interfaces and implementations for implementing evaluator configuration options.
Package options provides necessary interfaces and implementations for implementing evaluator configuration options.
engine/rtengine
Package rtengine contains utilities for the rule type engine.
Package rtengine contains utilities for the rule type engine.
entities/handlers
Package handlers contains the message handlers for entities.
Package handlers contains the message handlers for entities.
entities/handlers/message
Package message contains the message creation strategies
Package message contains the message creation strategies
entities/handlers/strategies
Package strategies contains the message creation strategies for entities and messages
Package strategies contains the message creation strategies for entities and messages
entities/handlers/strategies/entity
Package entity contains the entity creation strategies
Package entity contains the entity creation strategies
entities/handlers/strategies/message
Package message contains the message creation strategies
Package message contains the message creation strategies
entities/models
Package models contains domain models for entities
Package models contains domain models for entities
entities/properties
Package properties provides a simple way to access properties of an entity
Package properties provides a simple way to access properties of an entity
entities/properties/service
Package service provides a service to interact with properties of an entity
Package service provides a service to interact with properties of an entity
entities/properties/service/mock
Package mock_service is a generated GoMock package.
Package mock_service is a generated GoMock package.
entities/properties/service/mock/fixtures
Package fixtures contains code for creating RepositoryService fixtures and is used in various parts of the code.
Package fixtures contains code for creating RepositoryService fixtures and is used in various parts of the code.
events
Package events provide the eventer object which is responsible for setting up the watermill router and handling the incoming events
Package events provide the eventer object which is responsible for setting up the watermill router and handling the incoming events
events/common
Package common contains common interfaces and types used by the eventer.
Package common contains common interfaces and types used by the eventer.
events/gochannel
Package gochannel provides a gochannel implementation of the eventer
Package gochannel provides a gochannel implementation of the eventer
events/nats
Package nats provides a nants+cloudevents implementation of the eventer interface
Package nats provides a nants+cloudevents implementation of the eventer interface
events/sql
Package sql provides the eventer implementation for the SQL database.
Package sql provides the eventer implementation for the SQL database.
events/stubs
Package stubs contains stubs for the eventer package
Package stubs contains stubs for the eventer package
flags
Package flags containts utilities for managing feature flags.
Package flags containts utilities for managing feature flags.
history
Package history contains logic for tracking evaluation history
Package history contains logic for tracking evaluation history
history/mock
Package mock_history is a generated GoMock package.
Package mock_history is a generated GoMock package.
invites
Package invites provides the invite utilities for minder
Package invites provides the invite utilities for minder
invites/mock
Package mock_invites is a generated GoMock package.
Package mock_invites is a generated GoMock package.
logger
Package logger provides a general logging tools
Package logger provides a general logging tools
marketplaces
Package marketplaces holds logic for the importing rule types and profiles from bundles into projects.
Package marketplaces holds logic for the importing rule types and profiles from bundles into projects.
marketplaces/bundles/mock
Package mockbundle is a generated GoMock package.
Package mockbundle is a generated GoMock package.
marketplaces/bundles/mock/fixtures
Package fixtures contains code for creating bundle fixtures and is used in various parts of the code.
Package fixtures contains code for creating bundle fixtures and is used in various parts of the code.
marketplaces/namespaces
Package namespaces contains logic relating to the namespacing of Rule Types and Profiles
Package namespaces contains logic relating to the namespacing of Rule Types and Profiles
marketplaces/subscriptions
Package subscriptions contains logic relating to the concept of `subscriptions` - which describe a linkage between a project and a marketplace bundle
Package subscriptions contains logic relating to the concept of `subscriptions` - which describe a linkage between a project and a marketplace bundle
marketplaces/subscriptions/mock
Package mock_subscriptions is a generated GoMock package.
Package mock_subscriptions is a generated GoMock package.
marketplaces/subscriptions/mock/fixtures
Package fixtures contains code for creating subscription fixtures and is used in various parts of the code.
Package fixtures contains code for creating subscription fixtures and is used in various parts of the code.
metrics/meters
Package meters contains the OpenTelemetry meter factories.
Package meters contains the OpenTelemetry meter factories.
projects
Package projects contains utilities for working with projects.
Package projects contains utilities for working with projects.
projects/features
Package features provides the features checks for the projects
Package features provides the features checks for the projects
providers
Package providers contains general utilities for interacting with providers.
Package providers contains general utilities for interacting with providers.
providers/artifact
Package artifact provides functions and utilities for artifact providers
Package artifact provides functions and utilities for artifact providers
providers/credentials
Package credentials provides the implementations for the credentials
Package credentials provides the implementations for the credentials
providers/dockerhub
Package dockerhub provides a client for interacting with Docker Hub
Package dockerhub provides a client for interacting with Docker Hub
providers/git
Package git provides a client for interacting with Git providers
Package git provides a client for interacting with Git providers
providers/git/memboxfs
Package memboxfs provides a billy.Fs-compatible filesystem implementation which limits the maxiumum size of the in-memory filesystem.
Package memboxfs provides a billy.Fs-compatible filesystem implementation which limits the maxiumum size of the in-memory filesystem.
providers/github
Package github provides a client for interacting with the GitHub API
Package github provides a client for interacting with the GitHub API
providers/github/clients
Package clients contains github client logic
Package clients contains github client logic
providers/github/clients/mock
Package mock_clients is a generated GoMock package.
Package mock_clients is a generated GoMock package.
providers/github/common
Package common provides common utilities for the GitHub provider
Package common provides common utilities for the GitHub provider
providers/github/ghcr
Package ghcr provides a client for interacting with the GitHub Container Registry
Package ghcr provides a client for interacting with the GitHub Container Registry
providers/github/installations
Package installations contains logic relating to GitHub provider installations
Package installations contains logic relating to GitHub provider installations
providers/github/manager
Package manager contains the GitHubProviderClassManager
Package manager contains the GitHubProviderClassManager
providers/github/mock
Package mock_github is a generated GoMock package.
Package mock_github is a generated GoMock package.
providers/github/mock/fixtures
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
providers/github/properties
Package properties provides utility functions for fetching and managing properties
Package properties provides utility functions for fetching and managing properties
providers/github/service
Package service contains the GitHubProviderService
Package service contains the GitHubProviderService
providers/github/service/mock
Package mock_service is a generated GoMock package.
Package mock_service is a generated GoMock package.
providers/github/webhook
Package webhook implements github webhook handlers for the github provider
Package webhook implements github webhook handlers for the github provider
providers/gitlab
Package gitlab provides the GitLab OAuth provider implementation
Package gitlab provides the GitLab OAuth provider implementation
providers/gitlab/manager
Package manager contains the GitLabProviderClassManager
Package manager contains the GitLabProviderClassManager
providers/gitlab/webhooksecret
Package webhooksecret provides a way to generate and verify secrets for GitLab webhooks.
Package webhooksecret provides a way to generate and verify secrets for GitLab webhooks.
providers/http
Package http implements an HTTP client for interacting with an HTTP API.
Package http implements an HTTP client for interacting with an HTTP API.
providers/manager
Package manager contains logic for creating Provider instances
Package manager contains logic for creating Provider instances
providers/manager/mock
Package mock_manager is a generated GoMock package.
Package mock_manager is a generated GoMock package.
providers/manager/mock/fixtures
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
providers/mock
Package mock_providers is a generated GoMock package.
Package mock_providers is a generated GoMock package.
providers/mock/fixtures
Package fixtures contains code for creating ProviderStore fixtures and is used in various parts of the code.
Package fixtures contains code for creating ProviderStore fixtures and is used in various parts of the code.
providers/noop
Package noop provides a no-op provider implementation.
Package noop provides a no-op provider implementation.
providers/oci
Package oci provides a client for interacting with OCI registries
Package oci provides a client for interacting with OCI registries
providers/ratecache
Package ratecache provides a cache for the REST clients
Package ratecache provides a cache for the REST clients
providers/ratecache/mock
Package mock_ratecache is a generated GoMock package.
Package mock_ratecache is a generated GoMock package.
providers/selectors
Package selectors provides the conversion of entities to SelectorEntities
Package selectors provides the conversion of entities to SelectorEntities
providers/session
Package session contains the business logic for creating providers from session state.
Package session contains the business logic for creating providers from session state.
providers/session/mock
Package mock_session is a generated GoMock package.
Package mock_session is a generated GoMock package.
providers/telemetry
Package telemetry provides the telemetry interfaces and implementations for providers
Package telemetry provides the telemetry interfaces and implementations for providers
providers/testproviders
Package testproviders provides test implementations of the provider interfaces.
Package testproviders provides test implementations of the provider interfaces.
reconcilers
Package reconcilers contains the reconcilers for the various types of entities in minder.
Package reconcilers contains the reconcilers for the various types of entities in minder.
reconcilers/messages
Package messages contains messages structs and builders for events handled by reconcilers.
Package messages contains messages structs and builders for events handled by reconcilers.
reminder
Package reminder sends reminders to the minder server to process entities in background.
Package reminder sends reminders to the minder server to process entities in background.
reminder/messages
Package messages contains the messages used by the reminder service
Package messages contains the messages used by the reminder service
reminderprocessor
Package reminderprocessor processes the incoming reminders
Package reminderprocessor processes the incoming reminders
repositories
Package repositories contains logic relating to the repository entity type
Package repositories contains logic relating to the repository entity type
repositories/mock
Package mock_repositories is a generated GoMock package.
Package mock_repositories is a generated GoMock package.
repositories/mock/fixtures
Package fixtures contains code for creating RepositoryService fixtures and is used in various parts of the code.
Package fixtures contains code for creating RepositoryService fixtures and is used in various parts of the code.
roles
Package roles contains the logic for managing user roles within a Minder project
Package roles contains the logic for managing user roles within a Minder project
roles/mock
Package mock_roles is a generated GoMock package.
Package mock_roles is a generated GoMock package.
service
Package service contains the business logic for the minder services.
Package service contains the business logic for the minder services.
util
Package util provides helper functions for the minder CLI.
Package util provides helper functions for the minder CLI.
util/cache
Package cache contains cache utilities and implementations
Package cache contains cache utilities and implementations
util/cli
Package cli contains utility for the cli
Package cli contains utility for the cli
util/cli/table
Package table contains utilities for rendering tables
Package table contains utilities for rendering tables
util/cli/table/layouts
Package layouts defines the available table layouts
Package layouts defines the available table layouts
util/cli/table/simple
Package simple contains a simple table
Package simple contains a simple table
util/cli/useragent
Package useragent contains utilities for setting up the CLI's user agent
Package useragent contains utilities for setting up the CLI's user agent
util/cursor
Package cursor provides a way to encode and decode cursors for paginated queries
Package cursor provides a way to encode and decode cursors for paginated queries
util/jsonyaml
Package jsonyaml contains utility functions for converting to/from json and yaml
Package jsonyaml contains utility functions for converting to/from json and yaml
util/ptr
Package ptr contains the Ptr function
Package ptr contains the Ptr function
util/rand
Package rand contains utility functions largely for unit testing.
Package rand contains utility functions largely for unit testing.
util/schemaupdate
Package schemaupdate contains utility functions to compare two schemas for updates
Package schemaupdate contains utility functions to compare two schemas for updates
util/testqueue
Package testqueue contains queue utilities for testing
Package testqueue contains queue utilities for testing
verifier
Package verifier provides a client for verifying various types of artifacts against various provenance mechanisms
Package verifier provides a client for verifying various types of artifacts against various provenance mechanisms
verifier/sigstore
Package sigstore provides a client for verifying artifacts using sigstore
Package sigstore provides a client for verifying artifacts using sigstore
verifier/sigstore/container
Package container provides the tools to verify a container artifact using sigstore
Package container provides the tools to verify a container artifact using sigstore
verifier/verifyif
Package verifyif provides the interface for artifact verifiers, including the Result type
Package verifyif provides the interface for artifact verifiers, including the Result type
verifier/verifyif/mock
Package mock_verifyif is a generated GoMock package.
Package mock_verifyif is a generated GoMock package.
pkg
api/protobuf/go/minder/v1
Package v1 is a reverse proxy.
Package v1 is a reverse proxy.
config
Package config contains the configuration for the minder cli and server
Package config contains the configuration for the minder cli and server
config/client
Package client contains the configuration for the minder cli
Package client contains the configuration for the minder cli
config/reminder
Package reminder contains configuration options for the reminder service.
Package reminder contains configuration options for the reminder service.
config/server
Package server contains a centralized structure for all configuration options.
Package server contains a centralized structure for all configuration options.
engine/selectors
Package selectors provides utilities for selecting entities based on profiles using CEL
Package selectors provides utilities for selecting entities based on profiles using CEL
engine/selectors/mock
Package mock_selectors is a generated GoMock package.
Package mock_selectors is a generated GoMock package.
engine/v1/interfaces
Package interfaces contains the interfaces for the Minder policy engine.
Package interfaces contains the interfaces for the Minder policy engine.
engine/v1/rtengine
Package rtengine contains the rule type engine
Package rtengine contains the rule type engine
entities/v1/checkpoints
Package checkpoints contains logic relating to checkpoint management for entities
Package checkpoints contains logic relating to checkpoint management for entities
eventer
Package eventer provides an interface for creating a new eventer
Package eventer provides an interface for creating a new eventer
eventer/constants
Package constants contains constants used by the eventer package.
Package constants contains constants used by the eventer package.
eventer/interfaces
Package interfaces provides the interfaces for the eventer package.
Package interfaces provides the interfaces for the eventer package.
eventer/interfaces/mock
Package mock_interfaces is a generated GoMock package.
Package mock_interfaces is a generated GoMock package.
mindpak
Package mindpak abstracts to bundle profiles and rule types together in an artifact that allows for easy distribution and upgrade.
Package mindpak abstracts to bundle profiles and rule types together in an artifact that allows for easy distribution and upgrade.
mindpak/build
Package build implements tools and function to build mindpaks.
Package build implements tools and function to build mindpaks.
mindpak/reader
Package reader contains logic for accessing the contents of a bundle
Package reader contains logic for accessing the contents of a bundle
mindpak/sources
Package sources contains logic for loading a bundle from a source of bundles
Package sources contains logic for loading a bundle from a source of bundles
profiles
Package profiles contains business logic relating to the Profile entity in Minder
Package profiles contains business logic relating to the Profile entity in Minder
profiles/mock
Package mock_profiles is a generated GoMock package.
Package mock_profiles is a generated GoMock package.
profiles/mock/fixtures
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
profiles/models
Package models contains domain models for profiles
Package models contains domain models for profiles
providers/v1
Package v1 for providers provides the public interfaces for the providers implemented by minder.
Package v1 for providers provides the public interfaces for the providers implemented by minder.
querier
Package querier provides tools to interact with the Minder database
Package querier provides tools to interact with the Minder database
rule_methods
Package rule_methods provides the methods that are used by the rules
Package rule_methods provides the methods that are used by the rules
ruletypes
Package ruletypes contains logic relating to the management of rule types in minder
Package ruletypes contains logic relating to the management of rule types in minder
ruletypes/mock
Package mock_ruletypes is a generated GoMock package.
Package mock_ruletypes is a generated GoMock package.
ruletypes/mock/fixtures
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
testkit/v1
Package v1 contains the v1 version of the testkit package.
Package v1 contains the v1 version of the testkit package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL