presidium 1.3.2 → 1.4.1
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.
- package/Docker.js +11 -3
- package/ECR.js +1 -1
- package/Secrets.js +36 -0
- package/index.js +1 -0
- package/package.json +2 -1
package/Docker.js
CHANGED
|
@@ -24,21 +24,29 @@ const handleDockerHTTPResponse = require('./internal/handleDockerHTTPResponse')
|
|
|
24
24
|
*
|
|
25
25
|
* @docs
|
|
26
26
|
* ```coffeescript [specscript]
|
|
27
|
-
* new Docker(
|
|
27
|
+
* new Docker(options {
|
|
28
|
+
* apiVersion: string,
|
|
29
|
+
* }) -> docker Docker
|
|
28
30
|
* ```
|
|
29
31
|
*
|
|
30
32
|
* Presidium Docker client for [Docker](https://docs.docker.com/reference/).
|
|
31
33
|
*
|
|
32
34
|
* Note: the Presidium Docker client connects to the Docker socket. Please use caution when creating production services using the Presidium Docker client, see [How would an attacker gain access to the host machine from within a Docker container?](https://www.google.com/search?hl=en&q=how%20would%20an%20attacker%20gain%20access%20to%20the%20host%20machine%20from%20within%20a%20docker%20container).
|
|
35
|
+
*
|
|
36
|
+
* Arguments:
|
|
37
|
+
* * `options`
|
|
38
|
+
* * `apiVersion` - the version of the Docker API. Defaults to `'1.48'`.
|
|
33
39
|
*/
|
|
34
40
|
class Docker {
|
|
35
|
-
constructor() {
|
|
41
|
+
constructor(options = {}) {
|
|
36
42
|
const agent = new http.Agent({
|
|
37
43
|
socketPath: '/var/run/docker.sock',
|
|
38
44
|
maxSockets: Infinity,
|
|
39
45
|
})
|
|
40
46
|
|
|
41
|
-
this.
|
|
47
|
+
this.apiVersion = options.apiVersion ?? '1.48'
|
|
48
|
+
|
|
49
|
+
this.http = new HTTP(`http://0.0.0.0/v${this.apiVersion}`, { agent })
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
/**
|
package/ECR.js
CHANGED
|
@@ -217,7 +217,7 @@ class ECR {
|
|
|
217
217
|
*
|
|
218
218
|
* @docs
|
|
219
219
|
* ```coffeescript [specscript]
|
|
220
|
-
*
|
|
220
|
+
* getAuthorizationToken() -> authToken Promise<string>
|
|
221
221
|
* ```
|
|
222
222
|
*
|
|
223
223
|
* Gets an authorization token from Amazon ECR.
|
package/Secrets.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require('rubico/global')
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @name Secrets
|
|
6
|
+
*
|
|
7
|
+
* @docs
|
|
8
|
+
* ```coffeescript [specscript]
|
|
9
|
+
* Secrets() -> secrets Promise<Object>
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Presidium Secrets class. Consumes the `.secrets` file in the current directory.
|
|
13
|
+
*
|
|
14
|
+
* Arguments:
|
|
15
|
+
* * (none)
|
|
16
|
+
*
|
|
17
|
+
* Return:
|
|
18
|
+
* * `secrets` - a promise of an object of secret key-value pairs.
|
|
19
|
+
*
|
|
20
|
+
* ```javascript
|
|
21
|
+
* const secrets = await Secrets()
|
|
22
|
+
* console.log(secrets.mySecret) // ********
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
async function Secrets() {
|
|
26
|
+
const secrets = pipe(fs.promises.readFile('.secrets'), [
|
|
27
|
+
content => content.toString('utf8').trim().split('\n'),
|
|
28
|
+
map(line => line.split('=')),
|
|
29
|
+
Object.fromEntries,
|
|
30
|
+
])
|
|
31
|
+
await fs.promises.rm('.secrets')
|
|
32
|
+
|
|
33
|
+
return secrets
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = Secrets
|
package/index.js
CHANGED
|
@@ -12,6 +12,7 @@ module.exports = {
|
|
|
12
12
|
Password: require('./Password.js'),
|
|
13
13
|
Readable: require('./Readable.js'),
|
|
14
14
|
S3Bucket: require('./S3Bucket.js'),
|
|
15
|
+
Secrets: require('./Secrets.js'),
|
|
15
16
|
SecretsManager: require('./SecretsManager.js'),
|
|
16
17
|
StrictValidator: require('./StrictValidator.js'),
|
|
17
18
|
TranscribeStream: require('./TranscribeStream.js'),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "presidium",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "A library for creating web services",
|
|
5
5
|
"author": "Richard Tong",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"Password.js",
|
|
27
27
|
"Readable.js",
|
|
28
28
|
"S3Bucket.js",
|
|
29
|
+
"Secrets.js",
|
|
29
30
|
"SecretsManager.js",
|
|
30
31
|
"StrictValidator.js",
|
|
31
32
|
"TranscribeStream.js",
|