Skip to main content

Registry Management

Overview​

A registry configuration in WEDA stores the URL and authentication credentials for an external container registry. WEDA Core encrypts sensitive credentials at rest and supplies the required registry settings to WEDA Node during deployment. This lets devices authenticate and pull private images without configuring credentials manually on each machine.

Create the configuration in the same Org as the target devices. In v1.2.0, both its name and its registry host must be unique within that Org.

WEDA supports four registry types:

Registry typeCredential fields
Docker Hub (DockerHub)username + accessToken, both required.
Azure ACR (AzureACR)username + userPassword, both required.
AWS ECR (AwsECR)Provide region, accessKey and accessSecretKey together, or leave all three empty for anonymous access. For authentication, use a valid region code such as us-east-1, a 20-character access key and a 40-character secret key.
Custom (Custom), for example Harbor or GitLab Container Registryusername + userPassword are optional; provide both when authentication is used.

Operations​

OperationAPIDescription
Create a Container RegistryPOST /api/v1/orgs/{orgId}/containers/registriesCreate a registry configuration.
List Container RegistriesGET /api/v1/orgs/{orgId}/containers/registriesList registry configurations in an Org.
Get a Container RegistryGET /api/v1/orgs/{orgId}/containers/registries/{registryId}Read a registry configuration by ID.
Update a Container RegistryPUT /api/v1/orgs/{orgId}/containers/registries/{registryId}Update a registry configuration.
Delete a Container RegistryDELETE /api/v1/orgs/{orgId}/containers/registries/{registryId}Delete a registry configuration.

Create in WEDA Console​

For example, prepare authenticated access to a private Harbor registry before deploying an application that references its images. The screenshots use harbor as the configuration name. Substitute your registry address and account when following the steps.

  1. In WEDA Console, select the target devices' Org and open Registries.
  2. Check whether a configuration for the registry host already exists. Reuse or update that configuration when appropriate.
Registries list in TestOrg with no configurations and an Add entry.
Select the intended Org and inspect its existing registry configurations before adding one.
  1. Select Add.
Add Container Registry form with Docker Hub selected and fields for Registry Name, Registry URL, User Name and Access Token.
The credential fields depend on the selected registry type. Docker Hub uses a username and access token.
  1. Choose the Registry Type and complete Basic information:
    • Registry Name: A unique name, such as harbor.
    • Registry URL: Your registry address, such as https://harbor.company.com.
    • Registry Type: Custom for this Harbor example.
Registry Type options showing Docker Hub, AWS ECR, Azure ACR and Custom.
Choose the registry provider whose credential requirements apply to your image source.
  1. Enter the registry account's username and password in Credentials.
Custom registry form named harbor, with a registry URL, account name and masked password.
This Custom registry example uses account credentials. Use your own registry address and keep password or token values masked.
  1. Select Submit, then Add in the confirmation dialog.
Add Registry confirmation dialog with Cancel and Add buttons.
Select Add to save the registry configuration.

Check the result: The configuration appears in the selected Org's registry list. Confirm its name, URL and type. API clients receive 201 Created and should retain the returned registryId for later reads, updates or deletion.

TestOrg registry list containing harbor with Custom type and its registry URL.
Confirm that harbor appears in the intended Org with the expected URL and type.

Saving a configuration does not confirm that a target device can reach the registry or pull a particular image. Check those results during deployment.

Read, Update and Delete​

In WEDA Console: Select the configuration's edit icon in the registry list. In the form shown below, Registry Name and Registry URL are read-only; edit the available type or credential fields as needed, then select Submit and read the configuration back.

Edit Container Registry form with Registry Name and Registry URL read-only and type and credential fields displayed.
Inspect the existing configuration before changing its access settings. Follow the selected registry type's credential requirements.

Through the API:

  • Read: List configurations in the intended Org or request a specific registryId. Registry responses use createdAt, an ISO 8601 timestamp, in v1.2.0. Update integrations that previously read creationTime.
  • Sort: Use sorting=createdAt desc for newest first, or createdAt asc for oldest first. Newest first is the default; registryName is also a supported sorting field.
  • Update: Send the intended configuration to the PUT endpoint using its Org and registryId. Apply the same name, host and provider-specific credential rules, then read the configuration back to verify it. Do not treat this endpoint as a partial PATCH or assume omitted credentials are retained.
  • Delete: Use the DELETE endpoint for that Org and registryId. A successful deletion returns 204 No Content. Check the Org's registry list afterward. Before deleting access settings, review which application images will need that registry for future deployments.
Note: Registry changes do not redeploy applications

Creating or updating a registry configuration does not automatically trigger a deployment. Deploy the Stack again when devices need to receive the updated registry settings.

Constraints​

  • registryName: Required, non-empty and no more than 32 characters. The name must be unique within the Org. In v1.2.0, Update checks the same Org rather than the entire tenant, so another Org can use the same name.
  • registryUrl: Required and must be a valid HTTP or HTTPS registry URL.
  • Credentials: Follow the selected registry type's requirements. Paired fields must be submitted together; for explicit AWS authentication, provide all three AWS fields together.

Registry Host Uniqueness in v1.2.0​

WEDA Node chooses image pull credentials by registry host. To avoid ambiguous matches, WEDA rejects a new configuration whose host is already configured in the same Org, even if its registry name is different.

For this comparison, WEDA lowercases the host, removes the URL scheme, path, user information, query and default port, and retains a non-default port:

Registry URLHost used for duplicate detection
https://reg.example.comreg.example.com
http://reg.example.com/v2/reg.example.com
https://REG.example.com:443reg.example.com
https://reg.example.com:5000reg.example.com:5000

The first three entries count as the same host. The fourth is distinct. These examples explain duplicate detection; use your registry provider's connection URL when configuring access.

The Docker Hub hostnames docker.io, index.docker.io, registry-1.docker.io and hub.docker.com also count as the same host, docker.io.

Note: Handle a registry host conflict

A duplicate host returns 409 Conflict, with title WEDA.ContainerMgmt.RegistryHostExists. Find the existing configuration in the same Org and reuse or update it. Changing only the registry name, URL scheme or path does not avoid the host conflict.

On Update, the host check runs only when the normalized host changes. Duplicate configurations created before this rule are retained and can still be edited while their host remains unchanged. The upgrade does not automatically consolidate those configurations.

For API error handling, distinguish a host conflict from a name conflict, WEDA.ContainerMgmt.RegistryNameExists. For 400 field-validation errors, inspect validationItems[].fieldName and validationItems[].detail to identify the field and correction needed.

Using the Registry with a Stack​

Container Stacks reference images by registry hostname and image path, such as harbor.company.com/factory/inspection:1.0. They do not directly reference a WEDA registryId.

During deployment, WEDA Core supplies the target Org's registry configurations to WEDA Node so it can authenticate with the registries referenced by the Stack. Keep the image host and the intended registry access settings aligned.