@twin.org/api-models 0.0.3-next.4 → 0.0.3-next.41
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/README.md +1 -1
- package/dist/es/errors/forbiddenError.js +23 -0
- package/dist/es/errors/forbiddenError.js.map +1 -0
- package/dist/es/errors/tooManyRequestsError.js +25 -0
- package/dist/es/errors/tooManyRequestsError.js.map +1 -0
- package/dist/es/helpers/httpErrorHelper.js +34 -20
- package/dist/es/helpers/httpErrorHelper.js.map +1 -1
- package/dist/es/helpers/httpUrlHelper.js +105 -0
- package/dist/es/helpers/httpUrlHelper.js.map +1 -0
- package/dist/es/index.js +14 -4
- package/dist/es/index.js.map +1 -1
- package/dist/es/models/api/IServerHealthResponse.js.map +1 -1
- package/dist/es/models/api/IServerLivezResponse.js +2 -0
- package/dist/es/models/api/IServerLivezResponse.js.map +1 -0
- package/dist/es/models/api/IServerReadyzResponse.js +2 -0
- package/dist/es/models/api/IServerReadyzResponse.js.map +1 -0
- package/dist/es/models/api/IServerRootResponse.js +0 -2
- package/dist/es/models/api/IServerRootResponse.js.map +1 -1
- package/dist/es/models/config/IBaseRestClientConfig.js.map +1 -1
- package/dist/es/models/httpContextIdKeys.js +21 -0
- package/dist/es/models/httpContextIdKeys.js.map +1 -0
- package/dist/es/models/protocol/IHttpRequestContext.js.map +1 -1
- package/dist/es/models/protocol/IHttpRequestPathParams.js.map +1 -1
- package/dist/es/models/protocol/IHttpRequestQuery.js.map +1 -1
- package/dist/es/models/protocol/IHttpServerRequest.js.map +1 -1
- package/dist/es/models/responses/errors/IConflictResponse.js.map +1 -1
- package/dist/es/models/responses/errors/INotImplementedResponse.js +2 -0
- package/dist/es/models/responses/errors/INotImplementedResponse.js.map +1 -0
- package/dist/es/models/responses/errors/ITooManyRequestsResponse.js +2 -0
- package/dist/es/models/responses/errors/ITooManyRequestsResponse.js.map +1 -0
- package/dist/es/models/routes/IBaseRoute.js.map +1 -1
- package/dist/es/models/server/IBaseRouteProcessor.js.map +1 -1
- package/dist/es/models/server/IRestRouteProcessor.js.map +1 -1
- package/dist/es/models/server/ISocketRouteProcessor.js.map +1 -1
- package/dist/es/models/server/IWebServer.js.map +1 -1
- package/dist/es/models/services/IHealthComponent.js +2 -0
- package/dist/es/models/services/IHealthComponent.js.map +1 -0
- package/dist/es/models/services/IHostingComponent.js +2 -0
- package/dist/es/models/services/IHostingComponent.js.map +1 -0
- package/dist/es/models/services/IInformationComponent.js.map +1 -1
- package/dist/es/models/services/ITenant.js +4 -0
- package/dist/es/models/services/ITenant.js.map +1 -0
- package/dist/es/models/services/ITenantAdminComponent.js +2 -0
- package/dist/es/models/services/ITenantAdminComponent.js.map +1 -0
- package/dist/es/models/services/ITenantComponent.js +2 -0
- package/dist/es/models/services/ITenantComponent.js.map +1 -0
- package/dist/es/models/services/IUrlTransformerComponent.js +2 -0
- package/dist/es/models/services/IUrlTransformerComponent.js.map +1 -0
- package/dist/types/errors/forbiddenError.d.ts +20 -0
- package/dist/types/errors/tooManyRequestsError.d.ts +22 -0
- package/dist/types/helpers/httpErrorHelper.d.ts +6 -0
- package/dist/types/helpers/httpUrlHelper.d.ts +55 -0
- package/dist/types/index.d.ts +14 -4
- package/dist/types/models/api/IServerHealthResponse.d.ts +6 -3
- package/dist/types/models/api/IServerLivezResponse.d.ts +16 -0
- package/dist/types/models/api/IServerReadyzResponse.d.ts +16 -0
- package/dist/types/models/api/IServerRootResponse.d.ts +7 -0
- package/dist/types/models/config/IBaseRestClientConfig.d.ts +16 -0
- package/dist/types/models/httpContextIdKeys.d.ts +21 -0
- package/dist/types/models/protocol/IHttpRequestContext.d.ts +4 -0
- package/dist/types/models/protocol/IHttpRequestPathParams.d.ts +1 -1
- package/dist/types/models/protocol/IHttpRequestQuery.d.ts +1 -1
- package/dist/types/models/protocol/IHttpServerRequest.d.ts +4 -4
- package/dist/types/models/responses/errors/IConflictResponse.d.ts +1 -6
- package/dist/types/models/responses/errors/INotImplementedResponse.d.ts +15 -0
- package/dist/types/models/responses/errors/ITooManyRequestsResponse.d.ts +15 -0
- package/dist/types/models/routes/IBaseRoute.d.ts +9 -1
- package/dist/types/models/server/IBaseRouteProcessor.d.ts +14 -4
- package/dist/types/models/server/IRestRouteProcessor.d.ts +7 -2
- package/dist/types/models/server/IWebServer.d.ts +7 -1
- package/dist/types/models/services/IHealthComponent.d.ts +14 -0
- package/dist/types/models/services/IHostingComponent.d.ts +30 -0
- package/dist/types/models/services/IInformationComponent.d.ts +10 -17
- package/dist/types/models/services/ITenant.d.ts +29 -0
- package/dist/types/models/services/ITenantAdminComponent.d.ts +60 -0
- package/dist/types/models/services/ITenantComponent.d.ts +12 -0
- package/dist/types/models/services/IUrlTransformerComponent.d.ts +79 -0
- package/docs/changelog.md +350 -72
- package/docs/examples.md +200 -1
- package/docs/reference/classes/ForbiddenError.md +55 -0
- package/docs/reference/classes/HttpErrorHelper.md +14 -2
- package/docs/reference/classes/HttpParameterHelper.md +4 -4
- package/docs/reference/classes/HttpUrlHelper.md +197 -0
- package/docs/reference/classes/TooManyRequestsError.md +67 -0
- package/docs/reference/index.md +15 -5
- package/docs/reference/interfaces/IAcceptedResponse.md +2 -2
- package/docs/reference/interfaces/IBadRequestResponse.md +2 -2
- package/docs/reference/interfaces/IBaseRestClientConfig.md +57 -9
- package/docs/reference/interfaces/IBaseRoute.md +25 -9
- package/docs/reference/interfaces/IBaseRouteEntryPoint.md +4 -4
- package/docs/reference/interfaces/IBaseRouteProcessor.md +33 -13
- package/docs/reference/interfaces/IBaseSocketClientConfig.md +7 -7
- package/docs/reference/interfaces/IConflictResponse.md +3 -11
- package/docs/reference/interfaces/ICreatedResponse.md +2 -2
- package/docs/reference/interfaces/IForbiddenResponse.md +2 -2
- package/docs/reference/interfaces/IHealthComponent.md +21 -0
- package/docs/reference/interfaces/IHostingComponent.md +95 -0
- package/docs/reference/interfaces/IHttpRequest.md +8 -8
- package/docs/reference/interfaces/IHttpRequestContext.md +12 -4
- package/docs/reference/interfaces/IHttpRequestPathParams.md +1 -1
- package/docs/reference/interfaces/IHttpRequestQuery.md +1 -1
- package/docs/reference/interfaces/IHttpResponse.md +6 -6
- package/docs/reference/interfaces/IHttpServerRequest.md +14 -14
- package/docs/reference/interfaces/IInformationComponent.md +14 -56
- package/docs/reference/interfaces/IInternalServerErrorResponse.md +2 -2
- package/docs/reference/interfaces/IMimeTypeProcessor.md +2 -2
- package/docs/reference/interfaces/INoContentRequest.md +8 -8
- package/docs/reference/interfaces/INoContentResponse.md +1 -1
- package/docs/reference/interfaces/INotFoundResponse.md +3 -3
- package/docs/reference/interfaces/INotImplementedResponse.md +19 -0
- package/docs/reference/interfaces/IOkResponse.md +1 -1
- package/docs/reference/interfaces/IRestRoute.md +47 -23
- package/docs/reference/interfaces/IRestRouteExample.md +3 -3
- package/docs/reference/interfaces/IRestRouteProcessor.md +49 -19
- package/docs/reference/interfaces/IRestRouteRequestExample.md +4 -4
- package/docs/reference/interfaces/IRestRouteResponseAttachmentOptions.md +6 -6
- package/docs/reference/interfaces/IRestRouteResponseExample.md +4 -4
- package/docs/reference/interfaces/IRestRouteResponseOptions.md +2 -2
- package/docs/reference/interfaces/IServerFavIconResponse.md +7 -7
- package/docs/reference/interfaces/IServerHealthResponse.md +11 -3
- package/docs/reference/interfaces/IServerInfo.md +2 -2
- package/docs/reference/interfaces/IServerInfoResponse.md +1 -1
- package/docs/reference/interfaces/IServerLivezResponse.md +23 -0
- package/docs/reference/interfaces/IServerReadyzResponse.md +23 -0
- package/docs/reference/interfaces/IServerRootResponse.md +13 -1
- package/docs/reference/interfaces/IServerSpecResponse.md +4 -4
- package/docs/reference/interfaces/ISocketRequestContext.md +17 -5
- package/docs/reference/interfaces/ISocketRoute.md +38 -14
- package/docs/reference/interfaces/ISocketRouteProcessor.md +42 -22
- package/docs/reference/interfaces/ISocketServerRequest.md +17 -17
- package/docs/reference/interfaces/ITag.md +2 -2
- package/docs/reference/interfaces/ITenant.md +51 -0
- package/docs/reference/interfaces/ITenantAdminComponent.md +189 -0
- package/docs/reference/interfaces/ITenantComponent.md +29 -0
- package/docs/reference/interfaces/ITooManyRequestsResponse.md +19 -0
- package/docs/reference/interfaces/IUnauthorizedResponse.md +2 -2
- package/docs/reference/interfaces/IUnprocessableEntityResponse.md +2 -2
- package/docs/reference/interfaces/IUrlTransformerComponent.md +279 -0
- package/docs/reference/interfaces/IWebServer.md +34 -4
- package/docs/reference/interfaces/IWebServerOptions.md +12 -12
- package/docs/reference/type-aliases/HttpContextIdKeys.md +5 -0
- package/docs/reference/variables/HttpContextIdKeys.md +25 -0
- package/package.json +4 -4
- package/dist/es/factories/authenticationGeneratorFactory.js +0 -9
- package/dist/es/factories/authenticationGeneratorFactory.js.map +0 -1
- package/dist/es/models/client/IAuthenticationGenerator.js +0 -2
- package/dist/es/models/client/IAuthenticationGenerator.js.map +0 -1
- package/dist/es/models/services/IHealthInfo.js +0 -2
- package/dist/es/models/services/IHealthInfo.js.map +0 -1
- package/dist/es/models/services/healthStatus.js +0 -21
- package/dist/es/models/services/healthStatus.js.map +0 -1
- package/dist/types/factories/authenticationGeneratorFactory.d.ts +0 -6
- package/dist/types/models/client/IAuthenticationGenerator.d.ts +0 -14
- package/dist/types/models/services/IHealthInfo.d.ts +0 -27
- package/dist/types/models/services/healthStatus.d.ts +0 -21
- package/docs/reference/interfaces/IAuthenticationGenerator.md +0 -35
- package/docs/reference/interfaces/IHealthInfo.md +0 -37
- package/docs/reference/type-aliases/HealthStatus.md +0 -5
- package/docs/reference/variables/AuthenticationGeneratorFactory.md +0 -5
- package/docs/reference/variables/HealthStatus.md +0 -25
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model defining the tenant.
|
|
3
|
+
*/
|
|
4
|
+
export interface ITenant {
|
|
5
|
+
/**
|
|
6
|
+
* The unique identifier for the tenant.
|
|
7
|
+
*/
|
|
8
|
+
id: string;
|
|
9
|
+
/**
|
|
10
|
+
* The api key for the tenant.
|
|
11
|
+
*/
|
|
12
|
+
apiKey: string;
|
|
13
|
+
/**
|
|
14
|
+
* The label of the tenant.
|
|
15
|
+
*/
|
|
16
|
+
label: string;
|
|
17
|
+
/**
|
|
18
|
+
* The date the tenant was created.
|
|
19
|
+
*/
|
|
20
|
+
dateCreated: string;
|
|
21
|
+
/**
|
|
22
|
+
* The date the tenant was modified.
|
|
23
|
+
*/
|
|
24
|
+
dateModified: string;
|
|
25
|
+
/**
|
|
26
|
+
* The public origin available to the public for accessing the API.
|
|
27
|
+
*/
|
|
28
|
+
publicOrigin?: string;
|
|
29
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { IComponent } from "@twin.org/core";
|
|
2
|
+
import type { ITenant } from "./ITenant.js";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for the tenant admin component
|
|
5
|
+
*/
|
|
6
|
+
export interface ITenantAdminComponent extends IComponent {
|
|
7
|
+
/**
|
|
8
|
+
* Create a tenant.
|
|
9
|
+
* @param tenant The tenant to store.
|
|
10
|
+
* @returns The tenant id.
|
|
11
|
+
*/
|
|
12
|
+
create(tenant: Omit<ITenant, "id" | "dateCreated" | "dateModified"> & {
|
|
13
|
+
id?: string;
|
|
14
|
+
}): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Update a tenant.
|
|
17
|
+
* @param tenant The tenant to update.
|
|
18
|
+
* @returns Nothing.
|
|
19
|
+
*/
|
|
20
|
+
update(tenant: Partial<Omit<ITenant, "dateCreated" | "dateModified">>): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Get a tenant by its id.
|
|
23
|
+
* @param tenantId The id of the tenant.
|
|
24
|
+
* @returns The tenant.
|
|
25
|
+
* @throws Error if the tenant is not found.
|
|
26
|
+
*/
|
|
27
|
+
get(tenantId: string): Promise<ITenant>;
|
|
28
|
+
/**
|
|
29
|
+
* Get a tenant by its api key.
|
|
30
|
+
* @param apiKey The api key of the tenant.
|
|
31
|
+
* @returns The tenant.
|
|
32
|
+
* @throws Error if the tenant is not found.
|
|
33
|
+
*/
|
|
34
|
+
getByApiKey(apiKey: string): Promise<ITenant>;
|
|
35
|
+
/**
|
|
36
|
+
* Get a tenant by its public origin.
|
|
37
|
+
* @param publicOrigin The origin of the tenant.
|
|
38
|
+
* @returns The tenant.
|
|
39
|
+
* @throws Error if the tenant is not found.
|
|
40
|
+
*/
|
|
41
|
+
getByPublicOrigin(publicOrigin: string): Promise<ITenant>;
|
|
42
|
+
/**
|
|
43
|
+
* Remove a tenant by its id.
|
|
44
|
+
* @param tenantId The id of the tenant.
|
|
45
|
+
* @returns Nothing.
|
|
46
|
+
* @throws Error if the tenant is not found.
|
|
47
|
+
*/
|
|
48
|
+
remove(tenantId: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Query tenants with pagination.
|
|
51
|
+
* @param properties The properties to include in the returned tenants.
|
|
52
|
+
* @param cursor The cursor to start from.
|
|
53
|
+
* @param limit The maximum number of tenants to return.
|
|
54
|
+
* @returns The tenants and the next cursor if more tenants are available.
|
|
55
|
+
*/
|
|
56
|
+
query(properties: (keyof ITenant)[] | undefined, cursor?: string, limit?: number): Promise<{
|
|
57
|
+
tenants: ITenant[];
|
|
58
|
+
cursor?: string;
|
|
59
|
+
}>;
|
|
60
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IComponent } from "@twin.org/core";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for the tenant component.
|
|
4
|
+
*/
|
|
5
|
+
export interface ITenantComponent extends IComponent {
|
|
6
|
+
/**
|
|
7
|
+
* Run a per tenant operation.
|
|
8
|
+
* @param method The method to run for each tenant.
|
|
9
|
+
* @returns Nothing.
|
|
10
|
+
*/
|
|
11
|
+
runPerTenant(method: () => Promise<void>): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { IComponent } from "@twin.org/core";
|
|
2
|
+
import type { IHttpRequestQuery } from "../protocol/IHttpRequestQuery.js";
|
|
3
|
+
/**
|
|
4
|
+
* The URL transformer component for encrypting and decrypting URL parameters.
|
|
5
|
+
*/
|
|
6
|
+
export interface IUrlTransformerComponent extends IComponent {
|
|
7
|
+
/**
|
|
8
|
+
* Encrypt a named token value and append it as a query parameter to the given URL.
|
|
9
|
+
* The URL param name is resolved from the configured token name dictionary using the id.
|
|
10
|
+
* @param url The URL to append the encrypted token to.
|
|
11
|
+
* @param id The logical token identifier (e.g. "tenant").
|
|
12
|
+
* @param value The value to encrypt and add.
|
|
13
|
+
* @returns The URL with the encrypted token added as a query parameter.
|
|
14
|
+
*/
|
|
15
|
+
addEncryptedQueryParamToUrl(url: string, id: string, value: string): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Get a named token value from the query parameters.
|
|
18
|
+
* The URL param name is resolved from the configured token name dictionary using the id.
|
|
19
|
+
* @param queryParams The HTTP request query containing the parameters.
|
|
20
|
+
* @param id The logical token identifier (e.g. "tenant").
|
|
21
|
+
* @returns The decrypted token value if it exists.
|
|
22
|
+
*/
|
|
23
|
+
getEncryptedQueryParam(queryParams: IHttpRequestQuery | undefined, id: string): Promise<string | undefined>;
|
|
24
|
+
/**
|
|
25
|
+
* Add encrypted key/value pairs to a URL's query string.
|
|
26
|
+
* Existing query parameters on the URL are preserved; the provided params are
|
|
27
|
+
* merged in and then encrypted before being written back to the URL.
|
|
28
|
+
* @param url The base URL to add parameters to.
|
|
29
|
+
* @param params The key/value pairs to encrypt and append.
|
|
30
|
+
* @returns The URL with the encrypted parameters added.
|
|
31
|
+
*/
|
|
32
|
+
addEncryptedToUrl(url: string, params: IHttpRequestQuery): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Get an encrypted value from a URL's query string.
|
|
35
|
+
* @param url The URL to extract the encrypted value from.
|
|
36
|
+
* @param id The logical identifier for the value to retrieve (e.g. "tenant").
|
|
37
|
+
* @returns The decrypted value if it exists.
|
|
38
|
+
*/
|
|
39
|
+
getEncryptedFromUrl(url: string, id: string): Promise<string | undefined>;
|
|
40
|
+
/**
|
|
41
|
+
* Decrypt specified keys from a query parameter object and return their plain-text values.
|
|
42
|
+
* @param queryParams The HTTP request query containing the encrypted parameters.
|
|
43
|
+
* @param keys The keys to decrypt.
|
|
44
|
+
* @returns A map of the decrypted key/value pairs that were present.
|
|
45
|
+
*/
|
|
46
|
+
getDecryptedFromQueryParams(queryParams: IHttpRequestQuery | undefined, keys: string[]): Promise<IHttpRequestQuery>;
|
|
47
|
+
/**
|
|
48
|
+
* Encrypt query parameters using the URL transformer's encryption mechanism.
|
|
49
|
+
* @param httpRequestQuery The HTTP request query containing the parameters to encrypt.
|
|
50
|
+
* @param keys The keys of the parameters to encrypt.
|
|
51
|
+
* @returns A promise that resolves when the query parameters have been encrypted.
|
|
52
|
+
*/
|
|
53
|
+
encryptQueryParams(httpRequestQuery: IHttpRequestQuery | undefined, keys: string[]): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Decrypt query parameters using the URL transformer's encryption mechanism.
|
|
56
|
+
* @param httpRequestQuery The HTTP request query containing the encrypted values.
|
|
57
|
+
* @param keys The keys of the parameters to decrypt.
|
|
58
|
+
* @returns A promise that resolves when the query parameters have been decrypted.
|
|
59
|
+
*/
|
|
60
|
+
decryptQueryParams(httpRequestQuery: IHttpRequestQuery | undefined, keys: string[]): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Encrypt a parameter value.
|
|
63
|
+
* @param paramValue The value of the parameter to encrypt.
|
|
64
|
+
* @returns A promise that resolves to the encrypted value of the parameter.
|
|
65
|
+
*/
|
|
66
|
+
encryptParam(paramValue: string): Promise<string>;
|
|
67
|
+
/**
|
|
68
|
+
* Decrypt a parameter value.
|
|
69
|
+
* @param encryptedValue The encrypted value of the parameter.
|
|
70
|
+
* @returns A promise that resolves to the decrypted value of the parameter.
|
|
71
|
+
*/
|
|
72
|
+
decryptParam(encryptedValue: string): Promise<string>;
|
|
73
|
+
/**
|
|
74
|
+
* Get the parameter name for a given key.
|
|
75
|
+
* @param key The key of the parameter.
|
|
76
|
+
* @returns The parameter name.
|
|
77
|
+
*/
|
|
78
|
+
getParamName(key: string): string | undefined;
|
|
79
|
+
}
|