@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
JavaScript
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);
};