UNPKG

@apiclient.xyz/docker

Version:

Provides easy communication with Docker remote API from Node.js, with TypeScript support.

93 lines 6.87 kB
import * as plugins from './plugins.js'; import { DockerHost } from './classes.host.js'; import { DockerResource } from './classes.base.js'; // interfaces import * as interfaces from './interfaces/index.js'; export class DockerSecret extends DockerResource { // STATIC (Internal - prefixed with _ to indicate internal use) /** * Internal: Get all secrets * Public API: Use dockerHost.listSecrets() instead */ static async _list(dockerHostArg) { const response = await dockerHostArg.request('GET', '/secrets'); const secrets = []; for (const secret of response.body) { const dockerSecretInstance = new DockerSecret(dockerHostArg); Object.assign(dockerSecretInstance, secret); secrets.push(dockerSecretInstance); } return secrets; } /** * Internal: Get secret by ID * Public API: Use dockerHost.getSecretById(id) instead */ static async _fromId(dockerHostArg, idArg) { const secrets = await this._list(dockerHostArg); return secrets.find((secret) => secret.ID === idArg); } /** * Internal: Get secret by name * Public API: Use dockerHost.getSecretByName(name) instead */ static async _fromName(dockerHostArg, nameArg) { const secrets = await this._list(dockerHostArg); return secrets.find((secret) => secret.Spec.Name === nameArg); } /** * Internal: Create a secret * Public API: Use dockerHost.createSecret(descriptor) instead */ static async _create(dockerHostArg, secretDescriptor) { const labels = { ...secretDescriptor.labels, version: secretDescriptor.version, }; const response = await dockerHostArg.request('POST', '/secrets/create', { Name: secretDescriptor.name, Labels: labels, Data: plugins.smartstring.base64.encode(secretDescriptor.contentArg), }); const newSecretInstance = new DockerSecret(dockerHostArg); Object.assign(newSecretInstance, response.body); Object.assign(newSecretInstance, await DockerSecret._fromId(dockerHostArg, newSecretInstance.ID)); return newSecretInstance; } constructor(dockerHostArg) { super(dockerHostArg); } // INSTANCE METHODS /** * Refreshes this secret's state from the Docker daemon */ async refresh() { const updated = await DockerSecret._fromId(this.dockerHost, this.ID); if (updated) { Object.assign(this, updated); } } /** * Updates a secret */ async update(contentArg) { const response = await this.dockerHost.request('POST', `/secrets/${this.ID}/update?version=${this.Version.Index}`, { Name: this.Spec.Name, Labels: this.Spec.Labels, Data: plugins.smartstring.base64.encode(contentArg), }); } /** * Removes this secret from the Docker daemon */ async remove() { await this.dockerHost.request('DELETE', `/secrets/${this.ID}`); } /** * Gets the version label of this secret */ async getVersion() { return this.Spec.Labels.version; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zZWNyZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnNlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELGFBQWE7QUFDYixPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE1BQU0sT0FBTyxZQUFhLFNBQVEsY0FBYztJQUM5QywrREFBK0Q7SUFFL0Q7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBeUI7UUFDakQsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoRSxNQUFNLE9BQU8sR0FBbUIsRUFBRSxDQUFDO1FBQ25DLEtBQUssTUFBTSxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25DLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUF5QixFQUFFLEtBQWE7UUFDbEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxF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