@abyss-project/console 15.0.0 → 15.1.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 +7 -0
- package/dist/types/enum/api-error.enum.d.ts +0 -6
- package/dist/types/enum/api-error.enum.js +0 -6
- package/dist/types/enum/api-error.enum.js.map +1 -1
- package/dist/types/interface/api/responses/secret-access.response.d.ts +5 -2
- package/dist/utils/ip-address-validator.utils.d.ts +1 -8
- package/dist/utils/ip-address-validator.utils.js +1 -57
- package/dist/utils/ip-address-validator.utils.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 15.1.0
|
|
4
|
+
|
|
5
|
+
Vault follow-ups (#244 L2a).
|
|
6
|
+
|
|
7
|
+
- `ISecretAccessListItem`: a token as the list and its detail show it, `ISecretAccess` plus `lastUsedAt: Date | null`, the time of its latest successful read (`null` when it never read anything; a refused read does not count). `IPaginateSecretAccessResponse` and `IGetSecretAccessData.secretAccess` now carry it; the API computes it in one query per page.
|
|
8
|
+
- Removed, with no consumer in the ecosystem: `validateIpAddressValue`, its result type `IpAddressValidationResult`, `IpAddressErrorCode`, and the codes `Code.ipAddressValueRequired`, `Code.ipAddressInvalidIPv4Format`, `Code.ipAddressInvalidIPv6Format`, `Code.ipAddressInvalidIPv4CIDRFormat`, `Code.ipAddressInvalidIPv6CIDRFormat` and `Code.ipAddressInvalidType`. Nothing calls them (searched across every `apps`, `packages` and `e2e` of the ecosystem), so this ships as a minor. `detectIpAddressType` and the `isValidIPv4` / `isValidIPv6` / `isValidIPv4CIDR` / `isValidIPv6CIDR` checks stay: the API and the address field use them.
|
|
9
|
+
|
|
3
10
|
## 15.0.0
|
|
4
11
|
|
|
5
12
|
The Coffre: variables and IP addresses merge into the vault, and automations become on, off or archived (#244 L2a).
|
|
@@ -24,12 +24,6 @@ export declare enum Code {
|
|
|
24
24
|
monitorAlertRuleNotFound = "monitor_alert_rule_not_found",
|
|
25
25
|
monitorAlertRuleReadNotAllowed = "monitor_alert_rule_read_not_allowed",
|
|
26
26
|
monitorAlertRuleTransitionNotAllowed = "monitor_alert_rule_transition_not_allowed",
|
|
27
|
-
ipAddressValueRequired = "ip_address_value_required",
|
|
28
|
-
ipAddressInvalidIPv4Format = "ip_address_invalid_ipv4_format",
|
|
29
|
-
ipAddressInvalidIPv6Format = "ip_address_invalid_ipv6_format",
|
|
30
|
-
ipAddressInvalidIPv4CIDRFormat = "ip_address_invalid_ipv4_cidr_format",
|
|
31
|
-
ipAddressInvalidIPv6CIDRFormat = "ip_address_invalid_ipv6_cidr_format",
|
|
32
|
-
ipAddressInvalidType = "ip_address_invalid_type",
|
|
33
27
|
domainVerificationInvalidDomain = "domain_verification_invalid_domain",
|
|
34
28
|
domainVerificationDnsTimeout = "domain_verification_dns_timeout",
|
|
35
29
|
domainVerificationDnsNotFound = "domain_verification_dns_not_found",
|
|
@@ -29,12 +29,6 @@ var Code;
|
|
|
29
29
|
Code["monitorAlertRuleNotFound"] = "monitor_alert_rule_not_found";
|
|
30
30
|
Code["monitorAlertRuleReadNotAllowed"] = "monitor_alert_rule_read_not_allowed";
|
|
31
31
|
Code["monitorAlertRuleTransitionNotAllowed"] = "monitor_alert_rule_transition_not_allowed";
|
|
32
|
-
Code["ipAddressValueRequired"] = "ip_address_value_required";
|
|
33
|
-
Code["ipAddressInvalidIPv4Format"] = "ip_address_invalid_ipv4_format";
|
|
34
|
-
Code["ipAddressInvalidIPv6Format"] = "ip_address_invalid_ipv6_format";
|
|
35
|
-
Code["ipAddressInvalidIPv4CIDRFormat"] = "ip_address_invalid_ipv4_cidr_format";
|
|
36
|
-
Code["ipAddressInvalidIPv6CIDRFormat"] = "ip_address_invalid_ipv6_cidr_format";
|
|
37
|
-
Code["ipAddressInvalidType"] = "ip_address_invalid_type";
|
|
38
32
|
Code["domainVerificationInvalidDomain"] = "domain_verification_invalid_domain";
|
|
39
33
|
Code["domainVerificationDnsTimeout"] = "domain_verification_dns_timeout";
|
|
40
34
|
Code["domainVerificationDnsNotFound"] = "domain_verification_dns_not_found";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-error.enum.js","sourceRoot":"","sources":["../../../src/types/enum/api-error.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,mCAAsB,CAAA;IACtB,+CAAkC,CAAA;IAClC,6CAAgC,CAAA;AAClC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"api-error.enum.js","sourceRoot":"","sources":["../../../src/types/enum/api-error.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,mCAAsB,CAAA;IACtB,+CAAkC,CAAA;IAClC,6CAAgC,CAAA;AAClC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED,IAAY,IA6CX;AA7CD,WAAY,IAAI;IAEd,qDAA6C,CAAA;IAC7C,oEAA4D,CAAA;IAC5D,+CAAuC,CAAA;IACvC,8BAAsB,CAAA;IACtB,qDAA6C,CAAA;IAC7C,qDAA6C,CAAA;IAC7C,qDAA6C,CAAA;IAC7C,kDAA0C,CAAA;IAC1C,oCAA4B,CAAA;IAC5B,0CAAkC,CAAA;IAGlC,wEAAgE,CAAA;IAChE,qFAA6E,CAAA;IAC7E,oEAA4D,CAAA;IAC5D,oGAA4F,CAAA;IAC5F,sFAA8E,CAAA;IAC9E,kEAA0D,CAAA;IAC1D,wEAAgE,CAAA;IAGhE,iEAAyD,CAAA;IACzD,8EAAsE,CAAA;IACtE,0FAAkF,CAAA;IAGlF,8EAAsE,CAAA;IACtE,wEAAgE,CAAA;IAChE,2EAAmE,CAAA;IACnE,uEAA+D,CAAA;IAC/D,oEAA4D,CAAA;IAC5D,+EAAuE,CAAA;IACvE,6EAAqE,CAAA;IACrE,kFAA0E,CAAA;IAC1E,iEAAyD,CAAA;IACzD,iFAAyE,CAAA;IACzE,8EAAsE,CAAA;IACtE,gFAAwE,CAAA;IACxE,sEAA8D,CAAA;IAC9D,4EAAoE,CAAA;IAGpE,wCAAgC,CAAA;AAClC,CAAC,EA7CW,IAAI,oBAAJ,IAAI,QA6Cf"}
|
|
@@ -7,9 +7,12 @@ export interface ICreateSecretAccessData {
|
|
|
7
7
|
token: string;
|
|
8
8
|
}
|
|
9
9
|
export type ICreateSecretAccessResponse = IResponse<ICreateSecretAccessData>;
|
|
10
|
-
export type
|
|
10
|
+
export type ISecretAccessListItem = ISecretAccess & {
|
|
11
|
+
lastUsedAt: Date | null;
|
|
12
|
+
};
|
|
13
|
+
export type IPaginateSecretAccessResponse = IResponse<BasePaginate<ISecretAccessListItem>>;
|
|
11
14
|
export interface IGetSecretAccessData {
|
|
12
|
-
secretAccess:
|
|
15
|
+
secretAccess: ISecretAccessListItem;
|
|
13
16
|
}
|
|
14
17
|
export type IGetSecretAccessResponse = IResponse<IGetSecretAccessData>;
|
|
15
18
|
export interface IUpdateSecretAccessData {
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import { AllowedAddressType
|
|
2
|
-
export type IpAddressErrorCode = Code.ipAddressValueRequired | Code.ipAddressInvalidIPv4Format | Code.ipAddressInvalidIPv6Format | Code.ipAddressInvalidIPv4CIDRFormat | Code.ipAddressInvalidIPv6CIDRFormat | Code.ipAddressInvalidType;
|
|
3
|
-
export interface IpAddressValidationResult {
|
|
4
|
-
isValid: boolean;
|
|
5
|
-
errorCode?: IpAddressErrorCode;
|
|
6
|
-
errorMessage?: string;
|
|
7
|
-
}
|
|
1
|
+
import { AllowedAddressType } from '../types';
|
|
8
2
|
export declare const isValidIPv4: (ip: string) => boolean;
|
|
9
3
|
export declare const isValidIPv6: (ip: string) => boolean;
|
|
10
4
|
export declare const isValidIPv4CIDR: (cidr: string) => boolean;
|
|
11
5
|
export declare const isValidIPv6CIDR: (cidr: string) => boolean;
|
|
12
|
-
export declare const validateIpAddressValue: (type: AllowedAddressType, value: string) => IpAddressValidationResult;
|
|
13
6
|
export declare const detectIpAddressType: (value: string) => AllowedAddressType | null;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.detectIpAddressType = exports.
|
|
6
|
+
exports.detectIpAddressType = exports.isValidIPv6CIDR = exports.isValidIPv4CIDR = exports.isValidIPv6 = exports.isValidIPv4 = void 0;
|
|
7
7
|
const ipaddr_js_1 = __importDefault(require("ipaddr.js"));
|
|
8
8
|
const types_1 = require("../types");
|
|
9
9
|
const isValidIPv4 = (ip) => ipaddr_js_1.default.IPv4.isValidFourPartDecimal(ip);
|
|
@@ -14,62 +14,6 @@ const isValidIPv4CIDR = (cidr) => ipaddr_js_1.default.IPv4.isValidCIDRFourPartDe
|
|
|
14
14
|
exports.isValidIPv4CIDR = isValidIPv4CIDR;
|
|
15
15
|
const isValidIPv6CIDR = (cidr) => ipaddr_js_1.default.IPv6.isValidCIDR(cidr);
|
|
16
16
|
exports.isValidIPv6CIDR = isValidIPv6CIDR;
|
|
17
|
-
const validateIpAddressValue = (type, value) => {
|
|
18
|
-
if (!value || value.trim() === '') {
|
|
19
|
-
return {
|
|
20
|
-
isValid: false,
|
|
21
|
-
errorCode: types_1.Code.ipAddressValueRequired,
|
|
22
|
-
errorMessage: 'IP address value is required',
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
const trimmedValue = value.trim();
|
|
26
|
-
switch (type) {
|
|
27
|
-
case types_1.AllowedAddressType.IPV4:
|
|
28
|
-
if (!(0, exports.isValidIPv4)(trimmedValue)) {
|
|
29
|
-
return {
|
|
30
|
-
isValid: false,
|
|
31
|
-
errorCode: types_1.Code.ipAddressInvalidIPv4Format,
|
|
32
|
-
errorMessage: 'Invalid IPv4 address format. Example: 192.168.1.1',
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
break;
|
|
36
|
-
case types_1.AllowedAddressType.IPV6:
|
|
37
|
-
if (!(0, exports.isValidIPv6)(trimmedValue)) {
|
|
38
|
-
return {
|
|
39
|
-
isValid: false,
|
|
40
|
-
errorCode: types_1.Code.ipAddressInvalidIPv6Format,
|
|
41
|
-
errorMessage: 'Invalid IPv6 address format. Example: 2001:db8::1',
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
break;
|
|
45
|
-
case types_1.AllowedAddressType.IPV4_CIDR:
|
|
46
|
-
if (!(0, exports.isValidIPv4CIDR)(trimmedValue)) {
|
|
47
|
-
return {
|
|
48
|
-
isValid: false,
|
|
49
|
-
errorCode: types_1.Code.ipAddressInvalidIPv4CIDRFormat,
|
|
50
|
-
errorMessage: 'Invalid IPv4 CIDR format. Example: 192.168.1.0/24',
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
break;
|
|
54
|
-
case types_1.AllowedAddressType.IPV6_CIDR:
|
|
55
|
-
if (!(0, exports.isValidIPv6CIDR)(trimmedValue)) {
|
|
56
|
-
return {
|
|
57
|
-
isValid: false,
|
|
58
|
-
errorCode: types_1.Code.ipAddressInvalidIPv6CIDRFormat,
|
|
59
|
-
errorMessage: 'Invalid IPv6 CIDR format. Example: 2001:db8::/32',
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
break;
|
|
63
|
-
default:
|
|
64
|
-
return {
|
|
65
|
-
isValid: false,
|
|
66
|
-
errorCode: types_1.Code.ipAddressInvalidType,
|
|
67
|
-
errorMessage: 'Invalid IP address type',
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
return { isValid: true };
|
|
71
|
-
};
|
|
72
|
-
exports.validateIpAddressValue = validateIpAddressValue;
|
|
73
17
|
const detectIpAddressType = (value) => {
|
|
74
18
|
const trimmedValue = value.trim();
|
|
75
19
|
if ((0, exports.isValidIPv4CIDR)(trimmedValue)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ip-address-validator.utils.js","sourceRoot":"","sources":["../../src/utils/ip-address-validator.utils.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"ip-address-validator.utils.js","sourceRoot":"","sources":["../../src/utils/ip-address-validator.utils.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA+B;AAC/B,oCAA8C;AAavC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;AAA9E,QAAA,WAAW,eAAmE;AASpF,MAAM,WAAW,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAA/D,QAAA,WAAW,eAAoD;AAQrE,MAAM,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CACvD,mBAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AADlC,QAAA,eAAe,mBACmB;AAQxC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAA3E,QAAA,eAAe,mBAA4D;AAOjF,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAA6B,EAAE;IAC9E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAElC,IAAI,IAAA,uBAAe,EAAC,YAAY,CAAC,EAAE,CAAC;QAClC,OAAO,0BAAkB,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,IAAA,uBAAe,EAAC,YAAY,CAAC,EAAE,CAAC;QAClC,OAAO,0BAAkB,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,IAAA,mBAAW,EAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,0BAAkB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,IAAI,IAAA,mBAAW,EAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,0BAAkB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AApBW,QAAA,mBAAmB,uBAoB9B"}
|