@fonoster/apiserver 0.9.7 → 0.9.8

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,5 +1,6 @@
1
1
  import { Readable } from "stream";
2
- declare function httpBridge(params: {
2
+ import { IdentityConfig } from "@fonoster/identity";
3
+ declare function httpBridge(identityConfig: IdentityConfig, params: {
3
4
  port: number;
4
5
  }): {
5
6
  addStream: (id: string, stream: Readable) => void;
@@ -16,11 +16,10 @@ exports.httpBridge = httpBridge;
16
16
  const identity_1 = require("@fonoster/identity");
17
17
  const logger_1 = require("@fonoster/logger");
18
18
  const express_1 = __importDefault(require("express"));
19
- const identityConfig_1 = require("./identityConfig");
20
19
  const envs_1 = require("../envs");
21
20
  const logger = (0, logger_1.getLogger)({ service: "apiserver", filePath: __filename });
22
21
  const CONTENT_TYPE = "audio/L16;rate=16000;channels=1";
23
- function httpBridge(params) {
22
+ function httpBridge(identityConfig, params) {
24
23
  const { port } = params;
25
24
  const app = (0, express_1.default)();
26
25
  const streamMap = new Map();
@@ -46,12 +45,12 @@ function httpBridge(params) {
46
45
  });
47
46
  app.get("/api/identity/accept-invite", (req, res) => __awaiter(this, void 0, void 0, function* () {
48
47
  try {
49
- yield (0, identity_1.createUpdateMembershipStatus)(identityConfig_1.identityConfig)(req.query.token);
48
+ yield (0, identity_1.createUpdateMembershipStatus)(identityConfig)(req.query.token);
50
49
  res.redirect(envs_1.APP_URL);
51
50
  }
52
51
  catch (error) {
53
52
  logger.verbose("error updating membership status", error);
54
- res.redirect(envs_1.IDENTITY_WORKSPACE_INVITATION_FAIL_URL);
53
+ res.redirect(identityConfig.workspaceInviteFailUrl);
55
54
  }
56
55
  }));
57
56
  app.listen(port, () => {
@@ -1,4 +1,5 @@
1
1
  declare const identityConfig: {
2
+ dbUrl: string;
2
3
  issuer: string;
3
4
  audience: string;
4
5
  privateKey: string;
@@ -7,6 +8,10 @@ declare const identityConfig: {
7
8
  accessTokenExpiresIn: string;
8
9
  refreshTokenExpiresIn: string;
9
10
  idTokenExpiresIn: string;
11
+ workspaceInviteExpiration: string;
12
+ workspaceInviteUrl: string;
13
+ workspaceInviteFailUrl: string;
14
+ userVerificationRequired: boolean;
10
15
  smtpConfig: {
11
16
  host: string;
12
17
  port: number;
@@ -21,6 +21,7 @@ exports.identityConfig = void 0;
21
21
  */
22
22
  const envs_1 = require("../envs");
23
23
  const identityConfig = {
24
+ dbUrl: envs_1.IDENTITY_DATABASE_URL,
24
25
  issuer: envs_1.IDENTITY_ISSUER,
25
26
  audience: envs_1.IDENTITY_AUDIENCE,
26
27
  privateKey: envs_1.IDENTITY_PRIVATE_KEY,
@@ -29,6 +30,10 @@ const identityConfig = {
29
30
  accessTokenExpiresIn: envs_1.IDENTITY_ACCESS_TOKEN_EXPIRES_IN,
30
31
  refreshTokenExpiresIn: envs_1.IDENTITY_REFRESH_TOKEN_EXPIRES_IN,
31
32
  idTokenExpiresIn: envs_1.IDENTITY_ID_TOKEN_EXPIRES_IN,
33
+ workspaceInviteExpiration: envs_1.IDENTITY_WORKSPACE_INVITE_EXPIRATION,
34
+ workspaceInviteUrl: envs_1.IDENTITY_WORKSPACE_INVITE_URL,
35
+ workspaceInviteFailUrl: envs_1.IDENTITY_WORKSPACE_INVITE_FAIL_URL,
36
+ userVerificationRequired: envs_1.IDENTITY_USER_VERIFICATION_REQUIRED,
32
37
  smtpConfig: {
33
38
  host: envs_1.SMTP_HOST,
34
39
  port: envs_1.SMTP_PORT,
@@ -75,6 +75,7 @@ const runCallManager_1 = require("../calls/runCallManager");
75
75
  const envs_1 = require("../envs");
76
76
  const connectToAri_1 = require("../voice/connectToAri");
77
77
  const authz_1 = require("@fonoster/authz");
78
+ const identityConfig_1 = require("./identityConfig");
78
79
  const logger = (0, logger_1.getLogger)({ service: "apiserver", filePath: __filename });
79
80
  const authorization = (0, common_1.createAuthInterceptor)(envs_1.IDENTITY_PUBLIC_KEY, allowList_1.allowList);
80
81
  const checkMethodAuthorized = (0, authz_1.createCheckMethodAuthorized)(`${envs_1.AUTHZ_SERVICE_HOST}:${envs_1.AUTHZ_SERVICE_PORT}`, envs_1.AUTHZ_SERVICE_METHODS);
@@ -91,7 +92,7 @@ function runServices() {
91
92
  // Load the remaining services
92
93
  (0, loadServices_1.default)(server, yield services_1.default);
93
94
  // Connecting to Asterisk ARI
94
- yield (0, connectToAri_1.connectToAri)((0, httpBridge_1.httpBridge)({ port: envs_1.HTTP_BRIDGE_PORT }));
95
+ yield (0, connectToAri_1.connectToAri)((0, httpBridge_1.httpBridge)(identityConfig_1.identityConfig, { port: envs_1.HTTP_BRIDGE_PORT }));
95
96
  // Additional Call Managers subscriber may be added here to handle call events
96
97
  yield (0, runCallManager_1.createCreateCallSubscriber)({
97
98
  natsUrl: envs_1.NATS_URL,
package/dist/envs.d.ts CHANGED
@@ -22,7 +22,10 @@ export declare const IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET: string;
22
22
  export declare const IDENTITY_PRIVATE_KEY: string;
23
23
  export declare const IDENTITY_PUBLIC_KEY: string;
24
24
  export declare const IDENTITY_REFRESH_TOKEN_EXPIRES_IN: string;
25
- export declare const IDENTITY_WORKSPACE_INVITATION_FAIL_URL: string;
25
+ export declare const IDENTITY_WORKSPACE_INVITE_FAIL_URL: string;
26
+ export declare const IDENTITY_WORKSPACE_INVITE_EXPIRATION: string;
27
+ export declare const IDENTITY_WORKSPACE_INVITE_URL: string;
28
+ export declare const IDENTITY_DATABASE_URL: string;
26
29
  export declare const AUTHZ_SERVICE_ENABLED: boolean;
27
30
  export declare const AUTHZ_SERVICE_HOST: string;
28
31
  export declare const AUTHZ_SERVICE_PORT: string | number;
package/dist/envs.js CHANGED
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  var _a;
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.SMTP_SENDER = exports.SMTP_SECURE = exports.SMTP_PORT = exports.SMTP_HOST = exports.SMTP_AUTH_USER = exports.SMTP_AUTH_PASS = exports.ROUTR_DEFAULT_PEER_USERNAME = exports.ROUTR_DEFAULT_PEER_PASSWORD = exports.ROUTR_DEFAULT_PEER_NAME = exports.ROUTR_DEFAULT_PEER_AOR = exports.ROUTR_API_ENDPOINT = exports.OWNER_PASSWORD = exports.OWNER_NAME = exports.OWNER_EMAIL = exports.NATS_URL = exports.INTEGRATIONS_FILE = exports.INFLUXDB_USERNAME = exports.INFLUXDB_URL = exports.INFLUXDB_TOKEN = exports.INFLUXDB_PASSWORD = exports.INFLUXDB_ORG = exports.AUTHZ_SERVICE_METHODS = exports.AUTHZ_SERVICE_PORT = exports.AUTHZ_SERVICE_HOST = exports.AUTHZ_SERVICE_ENABLED = exports.IDENTITY_WORKSPACE_INVITATION_FAIL_URL = exports.IDENTITY_REFRESH_TOKEN_EXPIRES_IN = exports.IDENTITY_PUBLIC_KEY = exports.IDENTITY_PRIVATE_KEY = exports.IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET = exports.IDENTITY_OAUTH2_GITHUB_CLIENT_ID = exports.IDENTITY_OAUTH2_GITHUB_ENABLED = exports.IDENTITY_USER_VERIFICATION_REQUIRED = exports.IDENTITY_ISSUER = exports.IDENTITY_ID_TOKEN_EXPIRES_IN = exports.IDENTITY_AUDIENCE = exports.IDENTITY_ACCESS_TOKEN_EXPIRES_IN = exports.HTTP_BRIDGE_PORT = exports.DEFAULT_NATS_QUEUE_GROUP = exports.CLOAK_ENCRYPTION_KEY = exports.CALLS_TRACK_CALL_SUBJECT = exports.CALLS_CREATE_SUBJECT = exports.ASTERISK_TRUNK = exports.ASTERISK_SYSTEM_DOMAIN = exports.ASTERISK_ARI_USERNAME = exports.ASTERISK_ARI_SECRET = exports.ASTERISK_ARI_PROXY_URL = exports.APP_URL = exports.APISERVER_HOST = exports.APISERVER_BIND_ADDR = void 0;
8
- exports.TWILIO_PHONE_NUMBER = exports.TWILIO_AUTH_TOKEN = exports.TWILIO_ACCOUNT_SID = exports.TEMPLATES_DIR = void 0;
7
+ exports.SMTP_HOST = exports.SMTP_AUTH_USER = exports.SMTP_AUTH_PASS = exports.ROUTR_DEFAULT_PEER_USERNAME = exports.ROUTR_DEFAULT_PEER_PASSWORD = exports.ROUTR_DEFAULT_PEER_NAME = exports.ROUTR_DEFAULT_PEER_AOR = exports.ROUTR_API_ENDPOINT = exports.OWNER_PASSWORD = exports.OWNER_NAME = exports.OWNER_EMAIL = exports.NATS_URL = exports.INTEGRATIONS_FILE = exports.INFLUXDB_USERNAME = exports.INFLUXDB_URL = exports.INFLUXDB_TOKEN = exports.INFLUXDB_PASSWORD = exports.INFLUXDB_ORG = exports.AUTHZ_SERVICE_METHODS = exports.AUTHZ_SERVICE_PORT = exports.AUTHZ_SERVICE_HOST = exports.AUTHZ_SERVICE_ENABLED = exports.IDENTITY_DATABASE_URL = exports.IDENTITY_WORKSPACE_INVITE_URL = exports.IDENTITY_WORKSPACE_INVITE_EXPIRATION = exports.IDENTITY_WORKSPACE_INVITE_FAIL_URL = exports.IDENTITY_REFRESH_TOKEN_EXPIRES_IN = exports.IDENTITY_PUBLIC_KEY = exports.IDENTITY_PRIVATE_KEY = exports.IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET = exports.IDENTITY_OAUTH2_GITHUB_CLIENT_ID = exports.IDENTITY_OAUTH2_GITHUB_ENABLED = exports.IDENTITY_USER_VERIFICATION_REQUIRED = exports.IDENTITY_ISSUER = exports.IDENTITY_ID_TOKEN_EXPIRES_IN = exports.IDENTITY_AUDIENCE = exports.IDENTITY_ACCESS_TOKEN_EXPIRES_IN = exports.HTTP_BRIDGE_PORT = exports.DEFAULT_NATS_QUEUE_GROUP = exports.CLOAK_ENCRYPTION_KEY = exports.CALLS_TRACK_CALL_SUBJECT = exports.CALLS_CREATE_SUBJECT = exports.ASTERISK_TRUNK = exports.ASTERISK_SYSTEM_DOMAIN = exports.ASTERISK_ARI_USERNAME = exports.ASTERISK_ARI_SECRET = exports.ASTERISK_ARI_PROXY_URL = exports.APP_URL = exports.APISERVER_HOST = exports.APISERVER_BIND_ADDR = void 0;
8
+ exports.TWILIO_PHONE_NUMBER = exports.TWILIO_AUTH_TOKEN = exports.TWILIO_ACCOUNT_SID = exports.TEMPLATES_DIR = exports.SMTP_SENDER = exports.SMTP_SECURE = exports.SMTP_PORT = void 0;
9
9
  /*
10
10
  * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com)
11
11
  * http://github.com/fonoster/fonoster
@@ -44,7 +44,8 @@ const e = process.env;
44
44
  "APISERVER_SMTP_AUTH_PASS",
45
45
  "APISERVER_IDENTITY_ISSUER",
46
46
  "APISERVER_IDENTITY_DATABASE_URL",
47
- "APISERVER_IDENTITY_WORKSPACE_INVITATION_FAIL_URL",
47
+ "APISERVER_IDENTITY_WORKSPACE_INVITE_URL",
48
+ "APISERVER_IDENTITY_WORKSPACE_INVITE_FAIL_URL",
48
49
  "APISERVER_DATABASE_URL",
49
50
  "APISERVER_INFLUXDB_URL",
50
51
  "APISERVER_INFLUXDB_INIT_USERNAME",
@@ -84,7 +85,10 @@ exports.IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET = e.APISERVER_IDENTITY_OAUTH2_GITHU
84
85
  exports.IDENTITY_PRIVATE_KEY = fs_1.default.readFileSync(IDENTITY_PRIVATE_KEY_PATH, "utf8");
85
86
  exports.IDENTITY_PUBLIC_KEY = fs_1.default.readFileSync(IDENTITY_PUBLIC_KEY_PATH, "utf8");
86
87
  exports.IDENTITY_REFRESH_TOKEN_EXPIRES_IN = e.APISERVER_IDENTITY_REFRESH_TOKEN_EXPIRES_IN || "24h";
87
- exports.IDENTITY_WORKSPACE_INVITATION_FAIL_URL = e.APISERVER_IDENTITY_WORKSPACE_INVITATION_FAIL_URL;
88
+ exports.IDENTITY_WORKSPACE_INVITE_FAIL_URL = e.APISERVER_IDENTITY_WORKSPACE_INVITE_FAIL_URL;
89
+ exports.IDENTITY_WORKSPACE_INVITE_EXPIRATION = e.APISERVER_IDENTITY_WORKSPACE_INVITE_EXPIRATION || "1d";
90
+ exports.IDENTITY_WORKSPACE_INVITE_URL = e.APISERVER_IDENTITY_WORKSPACE_INVITE_URL;
91
+ exports.IDENTITY_DATABASE_URL = e.APISERVER_IDENTITY_DATABASE_URL;
88
92
  if (e.APISERVER_IDENTITY_OAUTH2_GITHUB_ENABLED === "true") {
89
93
  (0, common_1.assertEnvsAreSet)([
90
94
  "APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_ID",
package/dist/index.js CHANGED
@@ -73,6 +73,7 @@ const createInfluxDbPub_1 = require("./events/createInfluxDbPub");
73
73
  const nats_1 = require("./events/nats");
74
74
  const transformEvent_1 = require("./events/transformEvent");
75
75
  const common_1 = require("@fonoster/common");
76
+ const identityConfig_1 = require("./core/identityConfig");
76
77
  Promise.resolve().then(() => __importStar(require("./core/removeSwaggerNotice")));
77
78
  function main() {
78
79
  return __awaiter(this, void 0, void 0, function* () {
@@ -82,7 +83,7 @@ function main() {
82
83
  email: envs_1.OWNER_EMAIL,
83
84
  password: envs_1.OWNER_PASSWORD
84
85
  };
85
- yield (0, identity_1.upsertDefaultUser)(user);
86
+ yield (0, identity_1.upsertDefaultUser)(identityConfig_1.identityConfig, user);
86
87
  }
87
88
  // Upsert a Peer for the default region, if it doesn't already exist
88
89
  yield (0, upsertDefaultPeer_1.upsertDefaultPeer)();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fonoster/apiserver",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "description": "APIServer for Fonoster",
5
5
  "author": "Pedro Sanders <psanders@fonoster.com>",
6
6
  "homepage": "https://github.com/fonoster/fonoster#readme",
@@ -21,11 +21,11 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@deepgram/sdk": "^3.5.1",
24
- "@fonoster/authz": "^0.9.7",
24
+ "@fonoster/authz": "^0.9.8",
25
25
  "@fonoster/common": "^0.9.7",
26
- "@fonoster/identity": "^0.9.7",
26
+ "@fonoster/identity": "^0.9.8",
27
27
  "@fonoster/logger": "^0.9.7",
28
- "@fonoster/sipnet": "^0.9.7",
28
+ "@fonoster/sipnet": "^0.9.8",
29
29
  "@fonoster/streams": "^0.9.7",
30
30
  "@fonoster/types": "^0.9.0",
31
31
  "@google-cloud/speech": "^6.6.0",
@@ -73,5 +73,5 @@
73
73
  "@types/uuid": "^10.0.0",
74
74
  "@types/validator": "^13.12.0"
75
75
  },
76
- "gitHead": "58373b604b2e29bcfc6b88a2f30ae45afb4e97a7"
76
+ "gitHead": "ce8a2ea35fa85d494b158ddb8e61bd92ff2af00b"
77
77
  }