@balena/open-balena-api 34.0.0-build-loki-org-tenant-1dd4ed3f2fda977ac6a8acbeba7a23f995500ca5-1 → 34.1.0-build-api-key-v2-edf946093bd454bd4ac0d4d4e704e25fe46d4a8c-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.
@@ -8,6 +8,7 @@ export const setup = (app) => {
8
8
  app.post('/api-key/user/full', middleware.fullyAuthenticatedUser, middleware.permissionRequired('auth.create_token'), createNamedUserApiKey);
9
9
  app.post('/api-key/application/:appId/provisioning', middleware.fullyAuthenticatedUser, createProvisioningApiKey);
10
10
  app.post('/api-key/device/:deviceId/device-key', middleware.resolveApiKey, createDeviceApiKey);
11
- app.post('/api-key/v1', middleware.fullyAuthenticatedUser, createGenericApiKey);
11
+ app.post('/api-key/v1', middleware.fullyAuthenticatedUser, createGenericApiKey('v1'));
12
+ app.post('/api-key/v2', middleware.fullyAuthenticatedUser, createGenericApiKey('v2'));
12
13
  };
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/api-keys/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACN,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAgB,EAAE,EAAE;IACzC;;OAEG;IACH,GAAG,CAAC,IAAI,CACP,sCAAsC,EACtC,UAAU,CAAC,sBAAsB,EACjC,gBAAgB,CAChB,CAAC;IACF,GAAG,CAAC,IAAI,CACP,oBAAoB,EACpB,UAAU,CAAC,sBAAsB,EACjC,UAAU,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,EAClD,qBAAqB,CACrB,CAAC;IACF,GAAG,CAAC,IAAI,CACP,0CAA0C,EAC1C,UAAU,CAAC,sBAAsB,EACjC,wBAAwB,CACxB,CAAC;IACF,GAAG,CAAC,IAAI,CACP,sCAAsC,EACtC,UAAU,CAAC,aAAa,EACxB,kBAAkB,CAClB,CAAC;IAEF,GAAG,CAAC,IAAI,CACP,aAAa,EACb,UAAU,CAAC,sBAAsB,EACjC,mBAAmB,CACnB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/api-keys/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACN,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAgB,EAAE,EAAE;IACzC;;OAEG;IACH,GAAG,CAAC,IAAI,CACP,sCAAsC,EACtC,UAAU,CAAC,sBAAsB,EACjC,gBAAgB,CAChB,CAAC;IACF,GAAG,CAAC,IAAI,CACP,oBAAoB,EACpB,UAAU,CAAC,sBAAsB,EACjC,UAAU,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,EAClD,qBAAqB,CACrB,CAAC;IACF,GAAG,CAAC,IAAI,CACP,0CAA0C,EAC1C,UAAU,CAAC,sBAAsB,EACjC,wBAAwB,CACxB,CAAC;IACF,GAAG,CAAC,IAAI,CACP,sCAAsC,EACtC,UAAU,CAAC,aAAa,EACxB,kBAAkB,CAClB,CAAC;IAEF,GAAG,CAAC,IAAI,CACP,aAAa,EACb,UAAU,CAAC,sBAAsB,EACjC,mBAAmB,CAAC,IAAI,CAAC,CACzB,CAAC;IAEF,GAAG,CAAC,IAAI,CACP,aAAa,EACb,UAAU,CAAC,sBAAsB,EACjC,mBAAmB,CAAC,IAAI,CAAC,CACzB,CAAC;AACH,CAAC,CAAC"}
@@ -8,7 +8,9 @@ export interface ApiKeyOptions {
8
8
  tx?: Tx;
9
9
  }
10
10
  type ApiKeyActor = 'application' | 'device' | 'user';
11
- export declare const getApiKeyOptsFromRequest: (params: Dictionary<unknown>, prefix?: string) => Pick<ApiKeyOptions, "name" | "description" | "expiryDate">;
11
+ export declare function getApiKeyOptsFromRequest(params: Dictionary<unknown>, prefix?: string, mandatoryExpiryDate?: false): Pick<ApiKeyOptions, 'name' | 'description' | 'expiryDate'>;
12
+ export declare function getApiKeyOptsFromRequest(params: Dictionary<unknown>, prefix: string | undefined, mandatoryExpiryDate: true): NonNullableField<Pick<ApiKeyOptions, 'name' | 'description' | 'expiryDate'>, 'expiryDate'>;
13
+ export declare function getApiKeyOptsFromRequest(params: Dictionary<unknown>, prefix?: string, mandatoryExpiryDate?: boolean): Pick<ApiKeyOptions, 'name' | 'description' | 'expiryDate'>;
12
14
  export declare const createApiKey: (actorType: ApiKeyActor, roleName: string, req: Request, actorTypeID: number, options: ApiKeyOptions) => Promise<string>;
13
15
  export declare const createProvisioningApiKey: (req: Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, actorTypeID: number, options: ApiKeyOptions) => Promise<string>;
14
16
  export declare const createDeviceApiKey: (req: Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, actorTypeID: number, options: ApiKeyOptions) => Promise<string>;
@@ -76,7 +76,13 @@ const $createApiKey = async (actorType, roleName, req, actorTypeID, { apiKey, tx
76
76
  });
77
77
  return apiKey;
78
78
  };
79
- export const getApiKeyOptsFromRequest = (params, prefix) => {
79
+ function validateFieldProp(field, mandatory, fn) {
80
+ if (mandatory) {
81
+ return field != null && fn(field);
82
+ }
83
+ return field == null || fn(field);
84
+ }
85
+ export function getApiKeyOptsFromRequest(params, prefix, mandatoryExpiryDate = false) {
80
86
  const name = params[prefix ? `${prefix}Name` : 'name'];
81
87
  const description = params[prefix ? `${prefix}Description` : 'description'];
82
88
  const expiryDate = params[prefix ? `${prefix}ExpiryDate` : 'expiryDate'];
@@ -86,8 +92,7 @@ export const getApiKeyOptsFromRequest = (params, prefix) => {
86
92
  if (description != null && typeof description !== 'string') {
87
93
  throw new errors.BadRequestError('Key description should be a string value');
88
94
  }
89
- if (expiryDate != null &&
90
- (typeof expiryDate !== 'string' || isNaN(new Date(expiryDate).getTime()))) {
95
+ if (!validateFieldProp(expiryDate, mandatoryExpiryDate, (f) => typeof f === 'string' && !isNaN(new Date(f).getTime()))) {
91
96
  throw new errors.BadRequestError('Key expiry date should be a valid date');
92
97
  }
93
98
  return {
@@ -95,7 +100,7 @@ export const getApiKeyOptsFromRequest = (params, prefix) => {
95
100
  description: description ?? null,
96
101
  expiryDate: expiryDate ? new Date(expiryDate).toISOString() : null,
97
102
  };
98
- };
103
+ }
99
104
  export const createApiKey = async (actorType, roleName, req, actorTypeID, options) => {
100
105
  const { name, description, expiryDate } = getApiKeyOptsFromRequest(req.body);
101
106
  const create = async (tx) => {
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/features/api-keys/lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/features/api-keys/lib.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { RequestHandler } from 'express';
2
- export declare const createGenericApiKey: RequestHandler;
2
+ export declare const createGenericApiKey: (version: "v1" | "v2") => RequestHandler;
3
3
  export declare const createDeviceApiKey: RequestHandler;
4
4
  export declare const createProvisioningApiKey: RequestHandler;
5
5
  /**
@@ -2,41 +2,44 @@ import { errors, sbvrUtils } from '@balena/pinejs';
2
2
  import { getUser } from '../../infra/auth/auth.js';
3
3
  import { captureException, handleHttpErrors, translateError, } from '../../infra/error-handling/index.js';
4
4
  import { createGenericApiKey as $createGenericApiKey, createDeviceApiKey as $createDeviceApiKey, createNamedUserApiKey as $createNamedUserApiKey, createProvisioningApiKey as $createProvisioningApiKey, createUserApiKey as $createUserApiKey, getApiKeyOptsFromRequest, supportedActorTypes, } from './lib.js';
5
- export const createGenericApiKey = async (req, res) => {
6
- try {
7
- const apiKeyOptions = getApiKeyOptsFromRequest(req.body);
8
- const { actorType, actorTypeId, roles, apiKey: chosenApiKey, } = req.body;
9
- if (typeof actorType !== 'string' ||
10
- !supportedActorTypes.includes(actorType)) {
11
- throw new errors.BadRequestError('Unsupported actor type');
12
- }
13
- if (typeof actorTypeId !== 'number' || !Number.isFinite(actorTypeId)) {
14
- throw new errors.BadRequestError('Actor type id must be a number');
15
- }
16
- if (!Array.isArray(roles) ||
17
- roles.length === 0 ||
18
- roles.some((r) => typeof r !== 'string' || r.length === 0)) {
19
- throw new errors.BadRequestError('Roles should be an array of role names');
5
+ export const createGenericApiKey = (version) => {
6
+ const mandatoryExpiryDate = version !== 'v1';
7
+ return async (req, res) => {
8
+ try {
9
+ const apiKeyOptions = getApiKeyOptsFromRequest(req.body, undefined, mandatoryExpiryDate);
10
+ const { actorType, actorTypeId, roles, apiKey: chosenApiKey, } = req.body;
11
+ if (typeof actorType !== 'string' ||
12
+ !supportedActorTypes.includes(actorType)) {
13
+ throw new errors.BadRequestError('Unsupported actor type');
14
+ }
15
+ if (typeof actorTypeId !== 'number' || !Number.isFinite(actorTypeId)) {
16
+ throw new errors.BadRequestError('Actor type id must be a number');
17
+ }
18
+ if (!Array.isArray(roles) ||
19
+ roles.length === 0 ||
20
+ roles.some((r) => typeof r !== 'string' || r.length === 0)) {
21
+ throw new errors.BadRequestError('Roles should be an array of role names');
22
+ }
23
+ if (chosenApiKey != null && typeof chosenApiKey !== 'string') {
24
+ throw new errors.BadRequestError('API key must be a string');
25
+ }
26
+ const apiKey = await $createGenericApiKey(req, {
27
+ actorType: actorType,
28
+ actorTypeId,
29
+ roles,
30
+ apiKey: chosenApiKey ?? undefined,
31
+ ...apiKeyOptions,
32
+ });
33
+ res.json(apiKey);
20
34
  }
21
- if (chosenApiKey != null && typeof chosenApiKey !== 'string') {
22
- throw new errors.BadRequestError('API key must be a string');
23
- }
24
- const apiKey = await $createGenericApiKey(req, {
25
- actorType: actorType,
26
- actorTypeId,
27
- roles,
28
- apiKey: chosenApiKey ?? undefined,
29
- ...apiKeyOptions,
30
- });
31
- res.json(apiKey);
32
- }
33
- catch (err) {
34
- if (handleHttpErrors(req, res, err)) {
35
- return;
35
+ catch (err) {
36
+ if (handleHttpErrors(req, res, err)) {
37
+ return;
38
+ }
39
+ captureException(err, 'Error generating API key', { req });
40
+ res.status(500).send(translateError(err));
36
41
  }
37
- captureException(err, 'Error generating API key', { req });
38
- res.status(500).send(translateError(err));
39
- }
42
+ };
40
43
  };
41
44
  export const createDeviceApiKey = async (req, res) => {
42
45
  const deviceId = parseInt(req.params.deviceId, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/features/api-keys/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/features/api-keys/routes.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ import { findUser, getUser } from './infra/auth/auth.js';
10
10
  import { setUserTokenDataCallback } from './infra/auth/jwt.js';
11
11
  import { createAllPermissions } from './infra/auth/permissions.js';
12
12
  import { createScopedAccessToken } from './infra/auth/jwt.js';
13
+ import { getApiKeyOptsFromRequest } from './features/api-keys/lib.js';
13
14
  import { createRateLimiter } from './infra/rate-limiting/index.js';
14
15
  import { DeviceOnlineStates } from './features/device-heartbeat/index.js';
15
16
  import type { GetUrlFunction } from './features/request-logging/index.js';
@@ -156,7 +157,7 @@ export declare const utils: {
156
157
  export declare const apiKeys: {
157
158
  augmentReqApiKeyPermissions: <T extends pine.permissions.PermissionReq>(req: T, extraPermissions: string[], mutateRequestObject?: boolean) => T;
158
159
  isApiKeyWithRole: import("./infra/cache/multi-level-memoizee.js").MemoizedFn<(key: string, roleName: string, tx?: Tx) => Promise<boolean>>;
159
- getApiKeyOptsFromRequest: (params: Dictionary<unknown>, prefix?: string) => Pick<import("./features/api-keys/lib.js").ApiKeyOptions, "name" | "description" | "expiryDate">;
160
+ getApiKeyOptsFromRequest: typeof getApiKeyOptsFromRequest;
160
161
  };
161
162
  export declare const application: {
162
163
  addUserHasDirectAccessToApplicationToModel: (abstractSql: import("@balena/abstract-sql-compiler").AbstractSqlModel, selectQueryNodeTransformer?: (selectQueryNode: import("@balena/abstract-sql-compiler").SelectQueryNode) => import("@balena/abstract-sql-compiler").SelectQueryNode) => void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@balena/open-balena-api",
3
3
  "description": "Internet of things, Made Simple",
4
- "version": "34.0.0-build-loki-org-tenant-1dd4ed3f2fda977ac6a8acbeba7a23f995500ca5-1",
4
+ "version": "34.1.0-build-api-key-v2-edf946093bd454bd4ac0d4d4e704e25fe46d4a8c-1",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -166,6 +166,6 @@
166
166
  "loader": "ts-node/esm/transpile-only"
167
167
  },
168
168
  "versionist": {
169
- "publishedAt": "2024-12-13T16:44:25.978Z"
169
+ "publishedAt": "2024-12-13T17:05:16.413Z"
170
170
  }
171
171
  }