api-machine 1.3.0 → 2.0.0
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/CHANGELOG.md +1 -1
- package/LICENSE.md +20 -20
- package/README.md +275 -275
- package/authentication/authenticated-request.d.ts +5 -0
- package/authentication/authentication-scheme.d.ts +8 -1
- package/authentication/authentication-scheme.js +46 -4
- package/authentication/authentication-scheme.js.map +1 -1
- package/authentication/index.d.ts +2 -2
- package/authentication/index.js +2 -1
- package/authentication/index.js.map +1 -1
- package/authentication/schemes/bearer-authentication-scheme.d.ts +5 -4
- package/authentication/schemes/bearer-authentication-scheme.js +3 -1
- package/authentication/schemes/bearer-authentication-scheme.js.map +1 -1
- package/authentication/schemes/client-credentials-oauth2-scheme.d.ts +64 -0
- package/authentication/schemes/client-credentials-oauth2-scheme.js +99 -0
- package/authentication/schemes/client-credentials-oauth2-scheme.js.map +1 -0
- package/authorization/authorization.d.ts +16 -0
- package/authorization/authorization.js +3 -0
- package/authorization/authorization.js.map +1 -0
- package/authorization/index.d.ts +1 -0
- package/authorization/index.js +5 -0
- package/authorization/index.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +2 -1
- package/router/base.d.ts +10 -0
- package/router/base.js +32 -3
- package/router/base.js.map +1 -1
- package/router/endpoint.d.ts +3 -2
- package/router/endpoint.js +33 -0
- package/router/endpoint.js.map +1 -1
- package/router/endpoints/health-check-endpoint.js +2 -0
- package/router/endpoints/health-check-endpoint.js.map +1 -1
- package/router/index.d.ts +1 -0
- package/router/index.js +5 -1
- package/router/index.js.map +1 -1
- package/server/server-options.d.ts +7 -0
- package/server/server-options.js.map +1 -1
- package/server/server.d.ts +4 -0
- package/server/server.js +24 -0
- package/server/server.js.map +1 -1
- package/session/session.d.ts +2 -0
- package/di/container.d.ts +0 -31
- package/di/container.js +0 -57
- package/di/container.js.map +0 -1
package/router/index.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HealthCheckEndpoint = exports.PatchEndpoint = exports.DeleteEndpoint = exports.PutEndpoint = exports.PostEndpoint = exports.GetEndpoint = exports.BaseApiRouter = exports.BaseApiEndpoint = void 0;
|
|
3
|
+
exports.HealthCheckEndpoint = exports.PatchEndpoint = exports.DeleteEndpoint = exports.PutEndpoint = exports.PostEndpoint = exports.GetEndpoint = exports.AUTHORIZATION_REQUIREMENT_KEY = exports.AUTHORIZATION_KEY = exports.AUTHENTICATION_KEY = exports.BaseApiRouter = exports.BaseApiEndpoint = void 0;
|
|
4
4
|
var endpoint_1 = require("./endpoint");
|
|
5
5
|
Object.defineProperty(exports, "BaseApiEndpoint", { enumerable: true, get: function () { return endpoint_1.BaseApiEndpoint; } });
|
|
6
6
|
var router_1 = require("./router");
|
|
7
7
|
Object.defineProperty(exports, "BaseApiRouter", { enumerable: true, get: function () { return router_1.BaseApiRouter; } });
|
|
8
|
+
var base_1 = require("./base");
|
|
9
|
+
Object.defineProperty(exports, "AUTHENTICATION_KEY", { enumerable: true, get: function () { return base_1.AUTHENTICATION_KEY; } });
|
|
10
|
+
Object.defineProperty(exports, "AUTHORIZATION_KEY", { enumerable: true, get: function () { return base_1.AUTHORIZATION_KEY; } });
|
|
11
|
+
Object.defineProperty(exports, "AUTHORIZATION_REQUIREMENT_KEY", { enumerable: true, get: function () { return base_1.AUTHORIZATION_REQUIREMENT_KEY; } });
|
|
8
12
|
var endpoints_1 = require("./endpoints");
|
|
9
13
|
Object.defineProperty(exports, "GetEndpoint", { enumerable: true, get: function () { return endpoints_1.GetEndpoint; } });
|
|
10
14
|
Object.defineProperty(exports, "PostEndpoint", { enumerable: true, get: function () { return endpoints_1.PostEndpoint; } });
|
package/router/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/index.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AADnB,2GAAA,eAAe,OAAA;AAGhB,mCAAoD;AAAhC,uGAAA,aAAa,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/index.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AADnB,2GAAA,eAAe,OAAA;AAGhB,mCAAoD;AAAhC,uGAAA,aAAa,OAAA;AACjC,+BAIgB;AAHf,0GAAA,kBAAkB,OAAA;AAClB,yGAAA,iBAAiB,OAAA;AACjB,qHAAA,6BAA6B,OAAA;AAG9B,yCAOqB;AANpB,wGAAA,WAAW,OAAA;AACX,yGAAA,YAAY,OAAA;AACZ,wGAAA,WAAW,OAAA;AACX,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,gHAAA,mBAAmB,OAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LogInterface } from '../log';
|
|
2
2
|
import { AuthenticationScheme } from '../authentication/authentication-scheme';
|
|
3
|
+
import { ApiAuthorizationService } from '../authorization';
|
|
3
4
|
export interface SecurityHeadersOptions {
|
|
4
5
|
/**
|
|
5
6
|
* Disable the X-Powered-By header to prevent server fingerprinting
|
|
@@ -41,6 +42,12 @@ export interface RestServerOptions {
|
|
|
41
42
|
* This will be applied to all routers and endpoints unless overridden
|
|
42
43
|
*/
|
|
43
44
|
authentication?: AuthenticationScheme;
|
|
45
|
+
authorizer?: ApiAuthorizationService;
|
|
46
|
+
/**
|
|
47
|
+
* Fail startup if any endpoint has no effective authentication scheme.
|
|
48
|
+
* Explicitly public endpoints (`authentication = null`) are allowed.
|
|
49
|
+
*/
|
|
50
|
+
requireAuthentication?: boolean;
|
|
44
51
|
}
|
|
45
52
|
export declare const defaultSecurityHeadersOptions: SecurityHeadersOptions;
|
|
46
53
|
export declare const defaultRestServerOptions: RestServerOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-options.js","sourceRoot":"","sources":["../../../src/server/server-options.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"server-options.js","sourceRoot":"","sources":["../../../src/server/server-options.ts"],"names":[],"mappings":";;;AA2Da,QAAA,6BAA6B,GAA2B;IACpE,iBAAiB,EAAE,IAAI;IACvB,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,MAAM;IACpB,aAAa,EAAE,IAAI;IACnB,IAAI,EAAE,KAAK,EAAE,+CAA+C;CAC5D,CAAC;AAEW,QAAA,wBAAwB,GAAsB;IAC1D,IAAI,EAAE,IAAI;IACV,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,CAAC;IACtB,GAAG,EAAE;QACJ,GAAG,OAAO;QACV,sCAAsC;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,sCAAsC;QACtC,IAAI,EAAE,OAAO,CAAC,GAAG;KACjB;IACD,eAAe,EAAE,qCAA6B;CAC9C,CAAC"}
|
package/server/server.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import http from 'http';
|
|
|
4
4
|
import { DependencyContainer } from 'hidi';
|
|
5
5
|
import { RestServerOptions } from './server-options';
|
|
6
6
|
import { ApiRouter, BaseApiRouter } from '../router';
|
|
7
|
+
import { BaseApiRoute } from '../router/base';
|
|
7
8
|
import { AuthenticationScheme } from '../authentication/authentication-scheme';
|
|
8
9
|
import { LogInterface } from '../log';
|
|
9
10
|
export declare abstract class RestServer {
|
|
@@ -22,6 +23,8 @@ export declare abstract class RestServer {
|
|
|
22
23
|
readonly securityHeaders: RestServerOptions['securityHeaders'];
|
|
23
24
|
swaggerEnabled: boolean;
|
|
24
25
|
authentication?: AuthenticationScheme;
|
|
26
|
+
authorizer?: RestServerOptions['authorizer'];
|
|
27
|
+
requireAuthentication: boolean;
|
|
25
28
|
protected app: express.Express;
|
|
26
29
|
protected listener: http.Server;
|
|
27
30
|
protected log: LogInterface;
|
|
@@ -32,6 +35,7 @@ export declare abstract class RestServer {
|
|
|
32
35
|
protected createRouter(): Promise<void>;
|
|
33
36
|
protected registerAuthentication(): Promise<void>;
|
|
34
37
|
protected registerRoutes(): Promise<void>;
|
|
38
|
+
protected validateAuthenticationCoverage(route: BaseApiRoute): void;
|
|
35
39
|
protected registerSwagger(): Promise<void>;
|
|
36
40
|
protected setupExpress(): Promise<void>;
|
|
37
41
|
protected setupSecurityHeaders(): Promise<void>;
|
package/server/server.js
CHANGED
|
@@ -6,6 +6,8 @@ const express_1 = tslib_1.__importDefault(require("express"));
|
|
|
6
6
|
const cors_1 = tslib_1.__importDefault(require("cors"));
|
|
7
7
|
const hidi_1 = require("hidi");
|
|
8
8
|
const server_options_1 = require("./server-options");
|
|
9
|
+
const router_1 = require("../router");
|
|
10
|
+
const base_1 = require("../router/base");
|
|
9
11
|
const error_1 = require("../error");
|
|
10
12
|
const routes_1 = require("../oas/routes");
|
|
11
13
|
class RestServer {
|
|
@@ -24,6 +26,8 @@ class RestServer {
|
|
|
24
26
|
securityHeaders;
|
|
25
27
|
swaggerEnabled = false;
|
|
26
28
|
authentication;
|
|
29
|
+
authorizer;
|
|
30
|
+
requireAuthentication;
|
|
27
31
|
app;
|
|
28
32
|
listener;
|
|
29
33
|
log;
|
|
@@ -33,15 +37,21 @@ class RestServer {
|
|
|
33
37
|
this.maxPayloadSizeMB = options.maxPayloadSizeMB;
|
|
34
38
|
this.maxUrlEncodedSizeMB = options.maxUrlEncodedSizeMB;
|
|
35
39
|
this.log = options.log;
|
|
40
|
+
this.container.register('log', this.log);
|
|
36
41
|
this.securityHeaders = {
|
|
37
42
|
...server_options_1.defaultRestServerOptions.securityHeaders,
|
|
38
43
|
...options.securityHeaders,
|
|
39
44
|
};
|
|
40
45
|
this.swaggerEnabled = options.swaggerEnabled ?? false;
|
|
41
46
|
this.authentication = options.authentication;
|
|
47
|
+
this.authorizer = options.authorizer;
|
|
48
|
+
this.requireAuthentication = options.requireAuthentication ?? false;
|
|
42
49
|
}
|
|
43
50
|
async start() {
|
|
44
51
|
await this.inject();
|
|
52
|
+
if (this.authorizer !== undefined) {
|
|
53
|
+
this.container.register(base_1.AUTHORIZATION_KEY, this.authorizer);
|
|
54
|
+
}
|
|
45
55
|
await this.setupExpress();
|
|
46
56
|
await this.createRouter();
|
|
47
57
|
await this.registerAuthentication();
|
|
@@ -72,6 +82,20 @@ class RestServer {
|
|
|
72
82
|
}
|
|
73
83
|
async registerRoutes() {
|
|
74
84
|
await this.routerInstance.register(this.app, '');
|
|
85
|
+
if (this.requireAuthentication) {
|
|
86
|
+
this.validateAuthenticationCoverage(this.routerInstance);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
validateAuthenticationCoverage(route) {
|
|
90
|
+
if (route.routeType === 'endpoint' &&
|
|
91
|
+
route.getEffectiveAuthentication() === undefined) {
|
|
92
|
+
throw new Error(`Authentication is required but missing for ${route.fullPath}`);
|
|
93
|
+
}
|
|
94
|
+
if (route instanceof router_1.BaseApiRouter) {
|
|
95
|
+
for (const child of route.registeredRoutes) {
|
|
96
|
+
this.validateAuthenticationCoverage(child);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
75
99
|
}
|
|
76
100
|
async registerSwagger() {
|
|
77
101
|
if (this.swaggerEnabled) {
|
package/server/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAC9B,wDAAwB;AAExB,+BAA2C;AAE3C,qDAA+E;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"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"}
|
package/session/session.d.ts
CHANGED
package/di/container.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export declare class DependencyContainer {
|
|
2
|
-
protected dependencies: Map<string, any>;
|
|
3
|
-
protected parent?: DependencyContainer;
|
|
4
|
-
constructor(parent?: DependencyContainer);
|
|
5
|
-
/**
|
|
6
|
-
* Register a dependency
|
|
7
|
-
* @param key The key to register the dependency under
|
|
8
|
-
* @param value The dependency value
|
|
9
|
-
*/
|
|
10
|
-
register<T>(key: string, value: T): void;
|
|
11
|
-
/**
|
|
12
|
-
* Get a dependency, searching up the parent chain if not found locally
|
|
13
|
-
* @param key The key of the dependency to retrieve
|
|
14
|
-
* @returns The dependency value, or undefined if not found
|
|
15
|
-
*/
|
|
16
|
-
get<T>(key: string): T | undefined;
|
|
17
|
-
/**
|
|
18
|
-
* Check if a dependency exists in the container or its parents
|
|
19
|
-
* @param key The key to check
|
|
20
|
-
*/
|
|
21
|
-
has(key: string): boolean;
|
|
22
|
-
/**
|
|
23
|
-
* Create a child container that inherits from this one
|
|
24
|
-
*/
|
|
25
|
-
createChild(): DependencyContainer;
|
|
26
|
-
/**
|
|
27
|
-
* Set the parent container
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
setParent(parent: DependencyContainer): void;
|
|
31
|
-
}
|
package/di/container.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DependencyContainer = void 0;
|
|
4
|
-
class DependencyContainer {
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
-
dependencies = new Map();
|
|
7
|
-
// eslint-disable-next-line no-use-before-define
|
|
8
|
-
parent;
|
|
9
|
-
// eslint-disable-next-line no-use-before-define
|
|
10
|
-
constructor(parent) {
|
|
11
|
-
this.parent = parent;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Register a dependency
|
|
15
|
-
* @param key The key to register the dependency under
|
|
16
|
-
* @param value The dependency value
|
|
17
|
-
*/
|
|
18
|
-
register(key, value) {
|
|
19
|
-
this.dependencies.set(key, value);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Get a dependency, searching up the parent chain if not found locally
|
|
23
|
-
* @param key The key of the dependency to retrieve
|
|
24
|
-
* @returns The dependency value, or undefined if not found
|
|
25
|
-
*/
|
|
26
|
-
get(key) {
|
|
27
|
-
if (this.dependencies.has(key)) {
|
|
28
|
-
return this.dependencies.get(key);
|
|
29
|
-
}
|
|
30
|
-
if (this.parent) {
|
|
31
|
-
return this.parent.get(key);
|
|
32
|
-
}
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Check if a dependency exists in the container or its parents
|
|
37
|
-
* @param key The key to check
|
|
38
|
-
*/
|
|
39
|
-
has(key) {
|
|
40
|
-
return this.dependencies.has(key) || (this.parent?.has(key) ?? false);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Create a child container that inherits from this one
|
|
44
|
-
*/
|
|
45
|
-
createChild() {
|
|
46
|
-
return new DependencyContainer(this);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Set the parent container
|
|
50
|
-
* @internal
|
|
51
|
-
*/
|
|
52
|
-
setParent(parent) {
|
|
53
|
-
this.parent = parent;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.DependencyContainer = DependencyContainer;
|
|
57
|
-
//# sourceMappingURL=container.js.map
|
package/di/container.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/di/container.ts"],"names":[],"mappings":";;;AAAA,MAAa,mBAAmB;IAC/B,8DAA8D;IACpD,YAAY,GAAqB,IAAI,GAAG,EAAE,CAAC;IACrD,gDAAgD;IACtC,MAAM,CAAuB;IAEvC,gDAAgD;IAChD,YAAY,MAA4B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAI,GAAW,EAAE,KAAQ;QACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAI,GAAW;QACxB,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,MAA2B;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CACD;AA3DD,kDA2DC"}
|