# Packages
Package metrics defines the primitives available for the controlplane metrics.
# Functions
DeleteUser deletes a user and all their associated data from the minder database.
EntityContextProjectInterceptor is a server interceptor that sets up the entity context project.
FilterOptsFromStrings calls the given function `f` on each element of values.
GetProjectID retrieves the project ID from the request context.
GetProviderName retrieves the provider name from the request context.
HandleAdminEvents deletes users where the deletion occurred through the Keycloak API.
HandleEvents fetches events from the identity provider and performs any related changes to the minder database.
NewServer creates a new server instance.
ProjectAuthorizationInterceptor is a server interceptor that checks if a user is authorized on the requested project.
RegisterGatewayHTTPHandlers registers the gateway HTTP handlers.
RegisterGRPCServices registers the GRPC services.
SubscribeToAdminEvents starts a cron job that periodicalyl fetches admin events from Keycloak.
SubscribeToIdentityEvents starts a cron job that periodically fetches events from the identity provider.
TokenValidationInterceptor is a server interceptor that validates the bearer token.
# Constants
PaginationLimit is the maximum number of items that can be returned in a single page.
# Variables
ErrNoProjectInContext is returned when no project is found in the context.
RequestBodyMaxBytes is the maximum number of bytes that can be read from a request body We limit to 2MB for now.
# Structs
AccountEvent is an event returned by Keycloak for user events.
AdminEvent is an event returned by Keycloak for admin events -- note the completely different structure.
Server represents the controlplane server.
UpstreamRepoAndEntityRef is a pair of upstream repository and entity references.
# Interfaces
HasProtoContext is an interface that can be implemented by a request.
HasProtoContextV2 is an interface that can be implemented by a request.
HasProtoContextV2Compat is an interface that can be implemented by a request.
ProviderGetter is an interface that can be implemented by a context, since both the context V1 and V2 have a provider field.