OCI Package Proxy

Serving native package-manager protocols backed by an OCI registry.

Authenticate with an OIDC ID token in the HTTP Basic password under the username oauth2, shown below as $JWT. Mint one with lego devid token --audience oci-package-proxy on a laptop or oci-package-proxy token in CI; a local no-auth deployment needs none. See oci-native-credentials.md.

Terraform Registry

Entry point: https://pkg.thelegogroup.com/.well-known/terraform.json

# Provider/module registry host (terraform routes need no credential):
terraform {
  required_providers {
    example = {
      source  = "pkg.thelegogroup.com/<namespace>/<name>"
      version = "0.1.0"
    }
  }
}

Allowlisted packages:

Python (PyPI / PEP 503)

Entry point: https://pkg.thelegogroup.com/simple/

pip install --index-url https://oauth2:$JWT@pkg.thelegogroup.com/simple/ <package>
TWINE_USERNAME=oauth2 TWINE_PASSWORD="$JWT" twine upload --repository-url https://pkg.thelegogroup.com/upload/ dist/*.whl

No packages allowlisted for this protocol.

NuGet v3

Entry point: https://pkg.thelegogroup.com/nuget/v3/index.json

dotnet nuget add source https://pkg.thelegogroup.com/nuget/v3/index.json --name oci-package-proxy --username oauth2 --password "$JWT" --store-password-in-clear-text

No packages allowlisted for this protocol.

OCI-native (Helm, container images, OCI artifacts)

Entry point: https://pkg.thelegogroup.com/v2/

helm registry login pkg.thelegogroup.com --username oauth2 --password-stdin <<<"$JWT"
oras login pkg.thelegogroup.com --username oauth2 --password-stdin <<<"$JWT"
helm push <package>-0.1.0.tgz oci://pkg.thelegogroup.com
helm pull oci://pkg.thelegogroup.com/<package> --version 0.1.0
oras push pkg.thelegogroup.com/<package>:<tag> <file>

Allowlisted packages: