@incanta/config 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hcp-vault.d.ts","sourceRoot":"","sources":["../../src/secrets/hcp-vault.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE,GAAG,CAAC;CAClB;AAED,qBAAa,uBAAwB,YAAW,gBAAgB;IACjD,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hcp-vault.d.ts","sourceRoot":"","sources":["../../src/secrets/hcp-vault.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE,GAAG,CAAC;CAClB;AAED,qBAAa,uBAAwB,YAAW,gBAAgB;IACjD,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IA4BtC,UAAU,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAqBrB,SAAS,CACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC;CAenB"}
|
package/lib/secrets/hcp-vault.js
CHANGED
|
@@ -7,20 +7,26 @@ exports.HcpVaultSecretsProvider = void 0;
|
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
class HcpVaultSecretsProvider {
|
|
9
9
|
async getAuthToken() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
10
|
+
try {
|
|
11
|
+
const response = await axios_1.default.post("https://auth.idp.hashicorp.com/oauth2/token", {
|
|
12
|
+
client_id: process.env.HCP_CLIENT_ID,
|
|
13
|
+
client_secret: process.env.HCP_CLIENT_SECRET,
|
|
14
|
+
grant_type: "client_credentials",
|
|
15
|
+
audience: "https://api.hashicorp.cloud",
|
|
16
|
+
}, {
|
|
17
|
+
headers: {
|
|
18
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
value: response.data.access_token,
|
|
23
|
+
expires: new Date(Date.now() + response.data.expires_in * 1000),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
const typedError = error;
|
|
28
|
+
throw new Error(`Failed to get HCP Vault token: ${typedError.code}; did you set HCP_CLIENT_ID and HCP_CLIENT_SECRET?`);
|
|
29
|
+
}
|
|
24
30
|
}
|
|
25
31
|
async getSecrets(config, token) {
|
|
26
32
|
const orgId = config.get("secrets.hcp-vault.organization-id");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hcp-vault.js","sourceRoot":"","sources":["../../src/secrets/hcp-vault.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"hcp-vault.js","sourceRoot":"","sources":["../../src/secrets/hcp-vault.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AA2B1C,MAAa,uBAAuB;IAC3B,KAAK,CAAC,YAAY;QACvB,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,6CAA6C,EAC7C;gBACE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;gBACpC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBAC5C,UAAU,EAAE,oBAAoB;gBAChC,QAAQ,EAAE,6BAA6B;aACxC,EACD;gBACE,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CACF,CAAC;YACF,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY;gBACjC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAChE,CAAC;SACH;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,UAAU,GAAG,KAAmB,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,kCAAkC,UAAU,CAAC,IAAI,oDAAoD,CACtG,CAAC;SACH;IACH,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,MAAc,EACd,KAAa;QAEb,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAS,mCAAmC,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAS,8BAA8B,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAS,4BAA4B,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,oEAAoE,KAAK,aAAa,SAAS,SAAS,OAAO,OAAO,EACtH;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;SACF,CACF,CAAC;QAEF,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,OAA4B,EAAE;YAC/D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAC7C;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,MAAc,EACd,KAAa,EACb,UAAkB;QAElB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAS,mCAAmC,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAS,8BAA8B,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAS,4BAA4B,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,oEAAoE,KAAK,aAAa,SAAS,SAAS,OAAO,SAAS,UAAU,EAAE,EACpI;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;SACF,CACF,CAAC;QAEF,OAAQ,QAAQ,CAAC,IAAI,CAAC,MAA0B,CAAC,OAAO,CAAC,KAAK,CAAC;IACjE,CAAC;CACF;AAxED,0DAwEC"}
|
package/package.json
CHANGED
package/src/secrets/hcp-vault.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import axios from "axios";
|
|
1
|
+
import axios, { AxiosError } from "axios";
|
|
2
2
|
import Config from "../config";
|
|
3
3
|
import { ISecretsProvider, ISecretsToken } from "./provider";
|
|
4
4
|
|
|
@@ -27,25 +27,31 @@ export interface IHcpVaultSecret {
|
|
|
27
27
|
|
|
28
28
|
export class HcpVaultSecretsProvider implements ISecretsProvider {
|
|
29
29
|
public async getAuthToken(): Promise<ISecretsToken> {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
{
|
|
39
|
-
headers: {
|
|
40
|
-
"Content-Type": "application/x-www-form-urlencoded",
|
|
30
|
+
try {
|
|
31
|
+
const response = await axios.post(
|
|
32
|
+
"https://auth.idp.hashicorp.com/oauth2/token",
|
|
33
|
+
{
|
|
34
|
+
client_id: process.env.HCP_CLIENT_ID,
|
|
35
|
+
client_secret: process.env.HCP_CLIENT_SECRET,
|
|
36
|
+
grant_type: "client_credentials",
|
|
37
|
+
audience: "https://api.hashicorp.cloud",
|
|
41
38
|
},
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
{
|
|
40
|
+
headers: {
|
|
41
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
42
|
+
},
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
return {
|
|
46
|
+
value: response.data.access_token,
|
|
47
|
+
expires: new Date(Date.now() + response.data.expires_in * 1000),
|
|
48
|
+
};
|
|
49
|
+
} catch (error: any) {
|
|
50
|
+
const typedError = error as AxiosError;
|
|
51
|
+
throw new Error(
|
|
52
|
+
`Failed to get HCP Vault token: ${typedError.code}; did you set HCP_CLIENT_ID and HCP_CLIENT_SECRET?`
|
|
53
|
+
);
|
|
54
|
+
}
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
public async getSecrets(
|