@restorecommerce/facade 1.13.24 → 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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@restorecommerce/facade",
3
- "version": "1.13.24",
3
+ "version": "2.0.0",
4
4
  "description": "Facade for Restorecommerce microservices",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -143,5 +143,5 @@
143
143
  }
144
144
  }
145
145
  },
146
- "gitHead": "d82034330df7d0896cb8c8f7adba34eff6e34415"
146
+ "gitHead": "a7e14d6931bba36566105038f342bece443cc08a"
147
147
  }
@@ -1,12 +0,0 @@
1
- import { type Logger } from 'winston';
2
- import type Application from 'koa';
3
- export interface APIParams {
4
- apiKey?: boolean | string;
5
- logger: Logger;
6
- }
7
- export declare let bootstrapApiKey: string | undefined;
8
- export declare const setupApiKey: ({ apiKey, logger }: APIParams) => {
9
- router: any;
10
- app: Application.Middleware<any>;
11
- } | undefined;
12
- //# sourceMappingURL=api-key.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-key.d.ts","sourceRoot":"","sources":["../../../../src/modules/identity/api-key/api-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,KAAK,CAAC;AAgBnC,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,IAAI,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;AAuF/C,eAAO,MAAM,WAAW,uBAAwB,SAAS,KAAG;IAC1D,MAAM,EAAE,GAAG,CAAC;IACZ,GAAG,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;CAClC,GAAG,SA6CH,CAAC"}
@@ -1,136 +0,0 @@
1
- import * as uuid from 'uuid';
2
- import { Events, registerProtoMeta } from '@restorecommerce/kafka-client';
3
- import { createServiceConfig } from '@restorecommerce/service-config';
4
- import { protoMetadata as commandInterfaceMeta } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/commandinterface.js';
5
- import * as retry from 'retry';
6
- // const Router = require('koa-router');
7
- import Router from 'koa-router';
8
- // import controller from './controller/index.js';
9
- const router = new Router();
10
- export let bootstrapApiKey;
11
- const API_KEY_COMMAND_NAME = 'set_api_key';
12
- const API_KEY_COMMAND_EVENT = 'setApiKeyCommand';
13
- const API_KEY_COMMAND_RESPONSE = 'setApiKeyResponse';
14
- const COMMAND_TOPIC_NAME = 'io.restorecommerce.command';
15
- registerProtoMeta(commandInterfaceMeta);
16
- const exectueSetAPIKeyCommand = async (apiKey, logger) => {
17
- const cfg = createServiceConfig(process.cwd());
18
- if (apiKey && cfg.get('events:kafka')) {
19
- let payload = JSON.stringify({ authentication: { apiKey } });
20
- const eventObject = {
21
- name: API_KEY_COMMAND_NAME,
22
- payload: {}
23
- };
24
- let eventPayload = Buffer.from(payload).toString('base64');
25
- eventObject.payload = {
26
- type_url: 'payload',
27
- value: eventPayload
28
- };
29
- const events = new Events(cfg.get('events:kafka'), logger);
30
- await events.start();
31
- const commandResponses = [];
32
- // preparing event listener for system commands' responses
33
- const responseListener = async (msg, context, config, eventName) => {
34
- const payload = msg.payload;
35
- let decodedMsg = {};
36
- try {
37
- if (payload && payload.value) {
38
- decodedMsg = JSON.parse(Buffer.from(payload.value, 'base64').toString()); // google.protobuf.Any
39
- }
40
- logger.info('Received command response from services', JSON.stringify(msg.services), JSON.stringify(decodedMsg));
41
- commandResponses.push({
42
- services: msg.services,
43
- response: decodedMsg
44
- });
45
- }
46
- catch (err) {
47
- // some response-handling logic
48
- logger.error('Invalid message format in event:', eventName);
49
- throw err;
50
- }
51
- };
52
- const commandTopic = await events.topic(COMMAND_TOPIC_NAME);
53
- await commandTopic.on(API_KEY_COMMAND_RESPONSE, responseListener);
54
- await commandTopic.emit(API_KEY_COMMAND_EVENT, eventObject);
55
- let resp = await new Promise((resolve, reject) => {
56
- setTimeout(() => {
57
- commandTopic.removeAllListeners(API_KEY_COMMAND_RESPONSE);
58
- resolve({
59
- responses: commandResponses
60
- });
61
- }, 3000);
62
- });
63
- return resp;
64
- }
65
- else {
66
- logger.info('Kafka configuration missing for sync ApiKey');
67
- return {
68
- responses: [{ response: 'Api Key not synced' }]
69
- };
70
- }
71
- };
72
- const initApiKey = (logger, apiKey) => {
73
- if (apiKey === true) {
74
- bootstrapApiKey = uuid.v4().replace(/-/g, '');
75
- }
76
- else {
77
- bootstrapApiKey = apiKey;
78
- }
79
- const operation = retry.operation();
80
- operation.attempt(async () => {
81
- exectueSetAPIKeyCommand(bootstrapApiKey, logger).then((resp) => {
82
- logger.info('SetApiKey command response', resp);
83
- logger.info(`Bootstrap API Key is: ${bootstrapApiKey}`);
84
- }).catch(err => {
85
- logger.error('Error executing setApiKey command', err);
86
- operation.retry(err);
87
- const attemptNo = operation.attempts();
88
- logger.info(`Retry exectueSetAPIKeyCommand, attempt no: ${attemptNo}`);
89
- });
90
- });
91
- };
92
- export const setupApiKey = ({ apiKey, logger }) => {
93
- const router = new Router();
94
- try {
95
- if (!!apiKey) {
96
- initApiKey(logger, apiKey);
97
- router.all('/deleteApiKey', async (ctx, next) => {
98
- if (bootstrapApiKey) {
99
- if (ctx.apiKeyAuthorization === 'Bearer ' + bootstrapApiKey) {
100
- ctx.body = 'api key deleted!';
101
- logger.warn('Bootstrap API Key deleted!');
102
- bootstrapApiKey = undefined;
103
- }
104
- else {
105
- ctx.body = 'permission denied';
106
- ctx.status = 403;
107
- }
108
- }
109
- else {
110
- ctx.body = 'api key is already deleted!';
111
- ctx.status = 400;
112
- }
113
- await next();
114
- });
115
- return {
116
- router,
117
- app: async (context, next) => {
118
- if ('authorization' in context.headers) {
119
- const auth = context.headers.authorization.split(' ');
120
- if (auth.length === 2 && auth[0].toLowerCase() === 'bearer') {
121
- if (auth[1] === bootstrapApiKey) {
122
- context.apiKeyAuthorization = 'Bearer ' + bootstrapApiKey;
123
- }
124
- }
125
- }
126
- await next();
127
- }
128
- };
129
- }
130
- }
131
- catch (ex) {
132
- logger.error(ex);
133
- }
134
- return undefined;
135
- };
136
- //# sourceMappingURL=api-key.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-key.js","sourceRoot":"","sources":["../../../../src/modules/identity/api-key/api-key.ts"],"names":[],"mappings":"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"}