UNPKG

@softchef/cdk-iot-device-management

Version:

IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.

43 lines (42 loc) 2.3 kB
import { __assign, __awaiter, __generator, __read, __spreadArray } from "tslib"; import { fromEnv } from "@aws-sdk/credential-provider-env"; import { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata, } from "@aws-sdk/credential-provider-imds"; import { fromIni } from "@aws-sdk/credential-provider-ini"; import { fromProcess } from "@aws-sdk/credential-provider-process"; import { fromSSO } from "@aws-sdk/credential-provider-sso"; import { fromTokenFile } from "@aws-sdk/credential-provider-web-identity"; import { chain, CredentialsProviderError, memoize } from "@aws-sdk/property-provider"; import { loadSharedConfigFiles } from "@aws-sdk/shared-ini-file-loader"; import { ENV_PROFILE } from "@aws-sdk/util-credentials"; export var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; export var defaultProvider = function (init) { if (init === void 0) { init = {}; } var options = __assign({ profile: process.env[ENV_PROFILE] }, init); if (!options.loadedConfig) options.loadedConfig = loadSharedConfigFiles(init); var providers = [ fromSSO(options), fromIni(options), fromProcess(options), fromTokenFile(options), remoteProvider(options), function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { throw new CredentialsProviderError("Could not load credentials from any providers", false); }); }); }, ]; if (!options.profile) providers.unshift(fromEnv()); var providerChain = chain.apply(void 0, __spreadArray([], __read(providers))); return memoize(providerChain, function (credentials) { return credentials.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000; }, function (credentials) { return credentials.expiration !== undefined; }); }; var remoteProvider = function (init) { if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) { return fromContainerMetadata(init); } if (process.env[ENV_IMDS_DISABLED]) { return function () { return Promise.reject(new CredentialsProviderError("EC2 Instance Metadata Service access disabled")); }; } return fromInstanceMetadata(init); };