Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
manent
command
Command manent: the manent client.
|
Command manent: the manent client. |
|
manent-plugin-remote-copy
command
Command manent-plugin-remote-copy is the remote-copy plugin shipped as an external binary.
|
Command manent-plugin-remote-copy is the remote-copy plugin shipped as an external binary. |
|
manent-server
command
Command manent-server: manent's API, workers and platform operations.
|
Command manent-server: manent's API, workers and platform operations. |
|
internal
|
|
|
api
Package api exposes manent as an HTTP API (Gin) with JSON descriptors.
|
Package api exposes manent as an HTTP API (Gin) with JSON descriptors. |
|
apiclient
Package apiclient implements service.Service on top of the manent HTTP API.
|
Package apiclient implements service.Service on top of the manent HTTP API. |
|
app
Package app wires all manent components from the configuration.
|
Package app wires all manent components from the configuration. |
|
artifact
Package artifact fetches deploy artifacts into a local working directory.
|
Package artifact fetches deploy artifacts into a local working directory. |
|
audit
Package audit records who did what: deploy requests, cancellations, schedule changes, denied accesses and final deploy outcomes.
|
Package audit records who did what: deploy requests, cancellations, schedule changes, denied accesses and final deploy outcomes. |
|
auth
Package auth identifies who uses manent: OIDC users and static tokens on the API, the operating system user on the CLI.
|
Package auth identifies who uses manent: OIDC users and static tokens on the API, the operating system user on the CLI. |
|
authz
Package authz applies permissions (RBAC) per application and environment.
|
Package authz applies permissions (RBAC) per application and environment. |
|
azurefake
Package azurefake emulates, at protocol level, the Azure services used by manent's plugins: the Microsoft Entra ID token, the Resource Manager API of App Service (web apps, slots, site configuration, app settings, tags, swap) and of Container Apps (apps, revisions, traffic), Kudu (OneDeploy and deployment records), the web apps and container apps themselves (they serve the released files or the version of the image) and the Log Analytics query API.
|
Package azurefake emulates, at protocol level, the Azure services used by manent's plugins: the Microsoft Entra ID token, the Resource Manager API of App Service (web apps, slots, site configuration, app settings, tags, swap) and of Container Apps (apps, revisions, traffic), Kudu (OneDeploy and deployment records), the web apps and container apps themselves (they serve the released files or the version of the image) and the Log Analytics query API. |
|
callback
Package callback notifies the HTTP endpoints named in the descriptor of the outcome of steps and deploy.
|
Package callback notifies the HTTP endpoints named in the descriptor of the outcome of steps and deploy. |
|
change
Package change opens and closes the change management tickets of deploys in an ITSM (ServiceNow, Jira) and reads their approval state.
|
Package change opens and closes the change management tickets of deploys in an ITSM (ServiceNow, Jira) and reads their approval state. |
|
chat
Package chat sends deploy and approval notifications to Slack and Microsoft Teams and receives the decisions taken with the buttons of Slack messages.
|
Package chat sends deploy and approval notifications to Slack and Microsoft Teams and receives the decisions taken with the buttons of Slack messages. |
|
clientcli
Package clientcli implements the manent client CLI (cmd/manent): it reads YAML descriptors and talks only to the server's HTTP API, so authentication, permissions and audit always apply.
|
Package clientcli implements the manent client CLI (cmd/manent): it reads YAML descriptors and talks only to the server's HTTP API, so authentication, permissions and audit always apply. |
|
cliutil
Package cliutil holds helpers shared by the client and server CLIs.
|
Package cliutil holds helpers shared by the client and server CLIs. |
|
cluster
Package cluster keeps the registry of manent executors (workers): heartbeats, shutdown, claiming the workflows of a lost node and leases for the tasks only one worker at a time must perform (automatic recovery, retention, reconciliation).
|
Package cluster keeps the registry of manent executors (workers): heartbeats, shutdown, claiming the workflows of a lost node and leases for the tasks only one worker at a time must perform (automatic recovery, retention, reconciliation). |
|
config
Package config handles manent's static application configuration.
|
Package config handles manent's static application configuration. |
|
customspec
Package customspec defines the spec of custom steps (pipeline.steps with type), its validation, the canonical form captured in the plan and the signature the worker verifies.
|
Package customspec defines the spec of custom steps (pipeline.steps with type), its validation, the canonical form captured in the plan and the signature the worker verifies. |
|
customstep
Package customstep runs the custom steps defined in manent.yml: commands on the targets over SSH and HTTP requests.
|
Package customstep runs the custom steps defined in manent.yml: commands on the targets over SSH and HTTP requests. |
|
deploylog
Package deploylog collects the logs of every deploy in a durable DBOS stream of its workflow, readable from API and CLI even when the deploy runs on another worker.
|
Package deploylog collects the logs of every deploy in a durable DBOS stream of its workflow, readable from API and CLI even when the deploy runs on another worker. |
|
descriptor
Package descriptor defines the deploy descriptor and its parsing from YAML (CLI) and JSON (API).
|
Package descriptor defines the deploy descriptor and its parsing from YAML (CLI) and JSON (API). |
|
engine
Package engine orchestrates the deploy pipeline as a durable DBOS workflow.
|
Package engine orchestrates the deploy pipeline as a durable DBOS workflow. |
|
envconfig
Package envconfig fetches from a configuration management system (e.g.
|
Package envconfig fetches from a configuration management system (e.g. |
|
extplugin
Package extplugin starts and manages external deploy plugins: separate binaries that talk to manent over gRPC (pkg/plugin/external) and look like a normal plugin.Deployer to the rest of the engine.
|
Package extplugin starts and manages external deploy plugins: separate binaries that talk to manent over gRPC (pkg/plugin/external) and look like a normal plugin.Deployer to the rest of the engine. |
|
gitsrc
Package gitsrc reads files at a commit of a Git repository: it keeps a bare copy on disk, resolves refs into commit SHAs, checks that a SHA is reachable from the allowed refs and verifies commit signatures (OpenPGP or SSH).
|
Package gitsrc reads files at a commit of a Git repository: it keeps a bare copy on disk, resolves refs into commit SHAs, checks that a SHA is reachable from the allowed refs and verifies commit signatures (OpenPGP or SSH). |
|
glob
Package glob matches strings against simple patterns, used in configuration policies.
|
Package glob matches strings against simple patterns, used in configuration policies. |
|
governance
Package governance applies the release rules per application and environment: mandatory promotion from other environments, approvals and freeze windows.
|
Package governance applies the release rules per application and environment: mandatory promotion from other environments, approvals and freeze windows. |
|
labels
Package labels parses the selectors on target labels, for example "region=eu-1, az in (eu-1a, eu-1b), canary!=true".
|
Package labels parses the selectors on target labels, for example "region=eu-1, az in (eu-1a, eu-1b), canary!=true". |
|
logging
Package logging provides the application logger and log forwarding to the SIEM in RFC 5424 format.
|
Package logging provides the application logger and log forwarding to the SIEM in RFC 5424 format. |
|
pipeline
Package pipeline defines the step contract and the resolution of the execution plan.
|
Package pipeline defines the step contract and the resolution of the execution plan. |
|
policy
Package policy evaluates the governance policy written in Rego with OPA embedded in the process, and keeps the policy in force up to date from a source (manent's store, a local directory, an OPA bundle, Consul) without restarting: Runtime implements engine.Governance and engine.PolicyAdmin.
|
Package policy evaluates the governance policy written in Rego with OPA embedded in the process, and keeps the policy in force up to date from a source (manent's store, a local directory, an OPA bundle, Consul) without restarting: Runtime implements engine.Governance and engine.PolicyAdmin. |
|
rbac
Package rbac is the model of the permissions: actions, roles, bindings, the grants of an identity and the Authorizer that decides them (bindings of manent.yml or a Rego policy).
|
Package rbac is the model of the permissions: actions, roles, bindings, the grants of an identity and the Authorizer that decides them (bindings of manent.yml or a Rego policy). |
|
rollback
Package rollback applies the automatic rollback policies to the deploy descriptor.
|
Package rollback applies the automatic rollback policies to the deploy descriptor. |
|
rollout
Package rollout computes the plan of a wave release and checks target health between passes.
|
Package rollout computes the plan of a wave release and checks target health between passes. |
|
secrets
Package secrets resolves the secret references declared in the descriptor.
|
Package secrets resolves the secret references declared in the descriptor. |
|
servercli
Package servercli implements the manent-server CLI: API, workers and platform operations on the system database.
|
Package servercli implements the manent-server CLI: API, workers and platform operations on the system database. |
|
service
Package service is the contract between manent clients and server: service interfaces, requests, responses and errors.
|
Package service is the contract between manent clients and server: service interfaces, requests, responses and errors. |
|
steps
Package steps holds the standard implementations of the pipeline steps.
|
Package steps holds the standard implementations of the pipeline steps. |
|
telemetry
Package telemetry exposes manent's Prometheus metrics and OpenTelemetry tracing.
|
Package telemetry exposes manent's Prometheus metrics and OpenTelemetry tracing. |
|
tenant
Package tenant models the tenants: the internal teams that own the applications.
|
Package tenant models the tenants: the internal teams that own the applications. |
|
testdb
Package testdb gives tests an isolated DBOS system database: SQLite in a temporary directory or, if MANENT_TEST_DATABASE_URL points to a Postgres server, a new database created for the single test and dropped at the end.
|
Package testdb gives tests an isolated DBOS system database: SQLite in a temporary directory or, if MANENT_TEST_DATABASE_URL points to a Postgres server, a new database created for the single test and dropped at the end. |
|
traffic
Package traffic integrates manent with load balancers and traffic routers: it drains the targets from a pool before updating them and puts them back in service afterwards (Pool), and it shifts traffic between two groups of targets, the slots, in percentage rollouts (Router).
|
Package traffic integrates manent with load balancers and traffic routers: it drains the targets from a pool before updating them and puts them back in service afterwards (Pool), and it shifts traffic between two groups of targets, the slots, in percentage rollouts (Router). |
|
version
Package version identifies the manent binary.
|
Package version identifies the manent binary. |
|
webui
Package webui serves the manent web interface, built from web/ (make web) and embedded in the binary with go:embed.
|
Package webui serves the manent web interface, built from web/ (make web) and embedded in the binary with go:embed. |
|
pkg
|
|
|
plugin
Package plugin defines the public contract every deploy plugin must honor.
|
Package plugin defines the public contract every deploy plugin must honor. |
|
plugin/external
Package external lets a deploy plugin run as a separate process, shipped as a binary independent of manent.
|
Package external lets a deploy plugin run as a separate process, shipped as a binary independent of manent. |
|
plugins
|
|
|
appservice
Package appservice releases to Azure App Service web apps: a package (.zip, .war, .jar, .ear) through the OneDeploy API of Kudu, or a container image (linuxFxVersion or windowsFxVersion "DOCKER|<image>", pinned to the digest).
|
Package appservice releases to Azure App Service web apps: a package (.zip, .war, .jar, .ear) through the OneDeploy API of Kudu, or a container image (linuxFxVersion or windowsFxVersion "DOCKER|<image>", pinned to the digest). |
|
awselb
Package awselb integrates AWS load balancers (ALB and NLB) with manent: the aws-elb pool removes and restores the targets of a target group around the deploy, also through the standby of an Auto Scaling group, and the aws-alb router shifts traffic between the target groups of two slots.
|
Package awselb integrates AWS load balancers (ALB and NLB) with manent: the aws-elb pool removes and restores the targets of a target group around the deploy, also through the standby of an Auto Scaling group, and the aws-alb router shifts traffic between the target groups of two slots. |
|
awsmetrics
Package awsmetrics reads the health gate metrics from Amazon CloudWatch: the query is a metric math expression or a Metrics Insights query (SELECT ...), read with GetMetricData.
|
Package awsmetrics reads the health gate metrics from Amazon CloudWatch: the query is a metric math expression or a Metrics Insights query (SELECT ...), read with GetMetricData. |
|
azuremonitor
Package azuremonitor reads the health gate metrics from Azure Monitor Logs: a KQL query on a Log Analytics workspace (also the one of a workspace-based Application Insights), through the Log Analytics query API.
|
Package azuremonitor reads the health gate metrics from Azure Monitor Logs: a KQL query on a Log Analytics workspace (also the one of a workspace-based Application Insights), through the Log Analytics query API. |
|
cloudrun
Package cloudrun releases a container image to a Google Cloud Run service: it changes the image in the service template, which creates a new revision, and sends all traffic to the latest ready revision.
|
Package cloudrun releases a container image to a Google Cloud Run service: it changes the image in the service template, which creates a new revision, and sends all traffic to the latest ready revision. |
|
container
Package container releases a container image to servers or VMs over SSH, with Docker or Podman: it pulls the image pinned to the digest, replaces the application's container and waits until it is running (and "healthy", if the image has a HEALTHCHECK).
|
Package container releases a container image to servers or VMs over SSH, with Docker or Podman: it pulls the image pinned to the digest, replaces the application's container and waits until it is running (and "healthy", if the image has a HEALTHCHECK). |
|
containerapps
Package containerapps releases a container image to an Azure Container Apps app: it changes the image of the template, which creates a new revision with a suffix derived from the deploy, and waits for it to be running and healthy.
|
Package containerapps releases a container image to an Azure Container Apps app: it changes the image of the template, which creates a new revision with a suffix derived from the deploy, and waits for it to be running and healthy. |
|
ecs
Package ecs releases a container image to an Amazon ECS service (Fargate or EC2): it registers a new revision of the task definition in service with only the image changed, updates the service and waits for the ECS deployment to complete.
|
Package ecs releases a container image to an Amazon ECS service (Fargate or EC2): it registers a new revision of the task definition in service with only the image changed, updates the service and waits for the ECS deployment to complete. |
|
internal/awsauth
Package awsauth builds the AWS SDK configuration for the ecs and lambda plugins: target region, credentials from manent secrets or from the SDK default chain (environment variables, IRSA role, ECS task or EC2 instance role) and an optional assume role.
|
Package awsauth builds the AWS SDK configuration for the ecs and lambda plugins: target region, credentials from manent secrets or from the SDK default chain (environment variables, IRSA role, ECS task or EC2 instance role) and an optional assume role. |
|
internal/azure
Package azure groups what the Azure plugins share: the Microsoft Entra ID token (service principal with a client secret, workload identity, managed identity) and a client of the Azure Resource Manager REST API with long-running operations.
|
Package azure groups what the Azure plugins share: the Microsoft Entra ID token (service principal with a client secret, workload identity, managed identity) and a client of the Azure Resource Manager REST API with long-running operations. |
|
internal/pluginutil
Package pluginutil groups the functions shared by the managed cloud service plugins: artifact types from the configuration, durations and versions.
|
Package pluginutil groups the functions shared by the managed cloud service plugins: artifact types from the configuration, durations and versions. |
|
jboss
Package jboss releases Java EE / Jakarta EE applications (war, ear) to JBoss EAP and WildFly through the HTTP management API, in standalone or domain mode.
|
Package jboss releases Java EE / Jakarta EE applications (war, ear) to JBoss EAP and WildFly through the HTTP management API, in standalone or domain mode. |
|
kubernetes
Package kubernetes releases manifests to one or more Kubernetes clusters with server-side apply, waits for the workloads (Deployment, StatefulSet, DaemonSet) to finish their rollout and keeps the release history in the cluster, from which it reads the release in service and goes back to the previous one.
|
Package kubernetes releases manifests to one or more Kubernetes clusters with server-side apply, waits for the workloads (Deployment, StatefulSet, DaemonSet) to finish their rollout and keeps the release history in the cluster, from which it reads the release in service and goes back to the previous one. |
|
lambda
Package lambda releases the code of an AWS Lambda function: it updates the code (container image or .zip package), publishes an immutable version and moves an alias to it.
|
Package lambda releases the code of an AWS Lambda function: it updates the code (container image or .zip package), publishes an immutable version and moves an alias to it. |
|
remotecopy
Package remotecopy is the first deploy plugin: it copies the artifact to remote servers over SSH/SFTP, verifies its integrity and, optionally, runs a post-copy command.
|
Package remotecopy is the first deploy plugin: it copies the artifact to remote servers over SSH/SFTP, verifies its integrity and, optionally, runs a post-copy command. |
|
windows
Package windows deploys to Windows hosts: web applications on IIS, Windows services, scheduled tasks and MSI packages, over WinRM or the OpenSSH server of Windows, with PowerShell scripts.
|
Package windows deploys to Windows hosts: web applications on IIS, Windows services, scheduled tasks and MSI packages, over WinRM or the OpenSSH server of Windows, with PowerShell scripts. |
|
test
|
|
|
usecases/fakes
command
Command fakes emulates, for the use case lab, the external services manent talks to and that have no local version: the Slack Web API, Microsoft Teams webhooks, the ServiceNow Table API, a generic HTTP endpoint for custom steps and the metric APIs of Datadog, New Relic (NerdGraph), Elastic (ES|QL) and CloudWatch (GetMetricData, Smithy RPC v2 CBOR).
|
Command fakes emulates, for the use case lab, the external services manent talks to and that have no local version: the Slack Web API, Microsoft Teams webhooks, the ServiceNow Table API, a generic HTTP endpoint for custom steps and the metric APIs of Datadog, New Relic (NerdGraph), Elastic (ES|QL) and CloudWatch (GetMetricData, Smithy RPC v2 CBOR). |
|
usecases/gitserver
command
Command gitserver serves, for the use case lab (UC27), the Git repositories under a root over smart HTTP, through git http-backend, to clients authenticated with a token (basic auth, user manent).
|
Command gitserver serves, for the use case lab (UC27), the Git repositories under a root over smart HTTP, through git http-backend, to clients authenticated with a token (basic auth, user manent). |
|
usecases/oidc
command
Command oidc is a minimal OIDC identity provider for the use case lab: login by choosing a test user (no password), Authorization Code with PKCE, refresh tokens and RS256 JWTs with the groups claim.
|
Command oidc is a minimal OIDC identity provider for the use case lab: login by choosing a test user (no password), Authorization Code with PKCE, refresh tokens and RS256 JWTs with the groups claim. |
|
usecases/windows/fake
command
Command manent-uc-windows emulates, for the use cases, what a Windows host offers to the windows plugin besides SSH: a WinRM endpoint (WS-Management over HTTPS with basic authentication) that runs the commands with a real PowerShell, and the IIS web server that serves an application from its physicalPath while its application pool is started.
|
Command manent-uc-windows emulates, for the use cases, what a Windows host offers to the windows plugin besides SSH: a WinRM endpoint (WS-Management over HTTPS with basic authentication) that runs the commands with a real PowerShell, and the IIS web server that serves an application from its physicalPath while its application pool is started. |
Click to show internal directories.
Click to hide internal directories.






