@fjall/util 3.3.0 → 3.4.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.
package/dist/.minified CHANGED
@@ -1 +1 @@
1
- 87 files minified at 2026-07-18T12:18:40.218Z
1
+ 88 files minified at 2026-07-18T23:07:57.803Z
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Cost-allocation tag keys, shared by producer and consumers:
3
+ *
4
+ * - Producer (`@fjall/components-infrastructure`): the fjall App applies
5
+ * these as global tags to every synthesised stack (`lib/app.ts`
6
+ * `applyTagsAspect()`), and `applyCostAllocationTags` stamps them on
7
+ * governance/domain scopes.
8
+ * - Producer (`@fjall/deploy-core`): `cdk bootstrap` stamps the same keys
9
+ * onto the CDKToolkit stack via `--tags` (`orchestration/bootstrapTags.ts`),
10
+ * so the bootstrap roles/bucket/ECR repo stop surfacing as untagged,
11
+ * IaC-unmanaged assets in the posture scan.
12
+ * - Consumer (webapp posture rules): `missing-required-tags` accepts the
13
+ * `fjall:costallocation:<required>` form (lowercased) for its
14
+ * owner/service/environment requirements, and any `fjall:`-prefixed key
15
+ * marks the asset Fjall-managed for `iac-unmanaged`.
16
+ *
17
+ * The literals are deployed infrastructure state — renaming a key orphans
18
+ * every already-stamped resource (posture findings reopen fleet-wide) and
19
+ * desynchronises the Organizations cost-allocation-tag activation, which
20
+ * references the keys by name. The pin test in
21
+ * `util/src/__tests__/costAllocationTags.test.ts` guards against casual
22
+ * renames.
23
+ */
24
+ export declare const COST_ALLOCATION_TAGS: {
25
+ readonly ENVIRONMENT: "fjall:costAllocation:environment";
26
+ readonly SERVICE: "fjall:costAllocation:service";
27
+ readonly DOMAIN: "fjall:costAllocation:domain";
28
+ readonly OWNER: "fjall:costAllocation:owner";
29
+ };
30
+ /**
31
+ * Environment tag value for scopes with no workload stage — the organisation
32
+ * management (root) account and stage-less governance resources.
33
+ */
34
+ export declare const DEFAULT_COST_ALLOCATION_ENVIRONMENT: "management";
@@ -0,0 +1 @@
1
+ const o={ENVIRONMENT:"fjall:costAllocation:environment",SERVICE:"fjall:costAllocation:service",DOMAIN:"fjall:costAllocation:domain",OWNER:"fjall:costAllocation:owner"},l="management";export{o as COST_ALLOCATION_TAGS,l as DEFAULT_COST_ALLOCATION_ENVIRONMENT};
@@ -6,4 +6,5 @@ export { maskFailureAnalysis } from "./maskFailureAnalysis.js";
6
6
  export { classifyDriftSuspectEvents, findCurrentOperationStart, isDriftSuspectReason, isOperationOpeningEvent, type DriftSuspectEvent } from "./driftSuspects.js";
7
7
  export { IPAM_OPERATIONS_POOL_TAG_KEY, formatIpamPairTagValue } from "./ipamTags.js";
8
8
  export { SDK_PRE_EMPTY_TAG_KEY } from "./infraTags.js";
9
+ export { COST_ALLOCATION_TAGS, DEFAULT_COST_ALLOCATION_ENVIRONMENT } from "./costAllocationTags.js";
9
10
  export { ACCOUNT_MONITORING_ROLE_NAME } from "./monitoringRole.js";
package/dist/aws/index.js CHANGED
@@ -1 +1 @@
1
- import{AWSError as e,NoRolesFoundError as t,InvalidCredentialsError as i,SSOTokenExpiredError as s,MissingRegionError as n,ProfileNotFoundError as E,CommandError as a,isAWSError as p,isNoRolesFoundError as _,isSSOUnauthorizedError as f}from"./errors.js";import{STACK_NOT_FOUND_PATTERN as O,CDK_NO_STACKS_MATCH as u,isResourceEvent as A}from"./cloudformationTypes.js";import{countResourceProgress as T,formatElapsed as l}from"./deployProgress.js";import{CloudFormationFailureAnalyser as d}from"./CloudFormationFailureAnalyser.js";import{maskFailureAnalysis as x}from"./maskFailureAnalysis.js";import{classifyDriftSuspectEvents as P,findCurrentOperationStart as F,isDriftSuspectReason as c,isOperationOpeningEvent as I}from"./driftSuspects.js";import{IPAM_OPERATIONS_POOL_TAG_KEY as M,formatIpamPairTagValue as g}from"./ipamTags.js";import{SDK_PRE_EMPTY_TAG_KEY as v}from"./infraTags.js";import{ACCOUNT_MONITORING_ROLE_NAME as G}from"./monitoringRole.js";export{G as ACCOUNT_MONITORING_ROLE_NAME,e as AWSError,u as CDK_NO_STACKS_MATCH,d as CloudFormationFailureAnalyser,a as CommandError,M as IPAM_OPERATIONS_POOL_TAG_KEY,i as InvalidCredentialsError,n as MissingRegionError,t as NoRolesFoundError,E as ProfileNotFoundError,v as SDK_PRE_EMPTY_TAG_KEY,s as SSOTokenExpiredError,O as STACK_NOT_FOUND_PATTERN,P as classifyDriftSuspectEvents,T as countResourceProgress,F as findCurrentOperationStart,l as formatElapsed,g as formatIpamPairTagValue,p as isAWSError,c as isDriftSuspectReason,_ as isNoRolesFoundError,I as isOperationOpeningEvent,A as isResourceEvent,f as isSSOUnauthorizedError,x as maskFailureAnalysis};
1
+ import{AWSError as e,NoRolesFoundError as t,InvalidCredentialsError as i,SSOTokenExpiredError as s,MissingRegionError as E,ProfileNotFoundError as n,CommandError as O,isAWSError as a,isNoRolesFoundError as _,isSSOUnauthorizedError as T}from"./errors.js";import{STACK_NOT_FOUND_PATTERN as p,CDK_NO_STACKS_MATCH as f,isResourceEvent as m}from"./cloudformationTypes.js";import{countResourceProgress as S,formatElapsed as u}from"./deployProgress.js";import{CloudFormationFailureAnalyser as l}from"./CloudFormationFailureAnalyser.js";import{maskFailureAnalysis as d}from"./maskFailureAnalysis.js";import{classifyDriftSuspectEvents as I,findCurrentOperationStart as P,isDriftSuspectReason as F,isOperationOpeningEvent as L}from"./driftSuspects.js";import{IPAM_OPERATIONS_POOL_TAG_KEY as c,formatIpamPairTagValue as D}from"./ipamTags.js";import{SDK_PRE_EMPTY_TAG_KEY as g}from"./infraTags.js";import{COST_ALLOCATION_TAGS as G,DEFAULT_COST_ALLOCATION_ENVIRONMENT as U}from"./costAllocationTags.js";import{ACCOUNT_MONITORING_ROLE_NAME as Y}from"./monitoringRole.js";export{Y as ACCOUNT_MONITORING_ROLE_NAME,e as AWSError,f as CDK_NO_STACKS_MATCH,G as COST_ALLOCATION_TAGS,l as CloudFormationFailureAnalyser,O as CommandError,U as DEFAULT_COST_ALLOCATION_ENVIRONMENT,c as IPAM_OPERATIONS_POOL_TAG_KEY,i as InvalidCredentialsError,E as MissingRegionError,t as NoRolesFoundError,n as ProfileNotFoundError,g as SDK_PRE_EMPTY_TAG_KEY,s as SSOTokenExpiredError,p as STACK_NOT_FOUND_PATTERN,I as classifyDriftSuspectEvents,S as countResourceProgress,P as findCurrentOperationStart,u as formatElapsed,D as formatIpamPairTagValue,a as isAWSError,F as isDriftSuspectReason,_ as isNoRolesFoundError,L as isOperationOpeningEvent,m as isResourceEvent,T as isSSOUnauthorizedError,d as maskFailureAnalysis};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/util",
3
- "version": "3.3.0",
3
+ "version": "3.4.1",
4
4
  "description": "Common utility methods",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -134,5 +134,5 @@
134
134
  "engines": {
135
135
  "node": ">=22.0.0"
136
136
  },
137
- "gitHead": "cc1e0f520f4b6b5312e16df3751d60ea746dfb7d"
137
+ "gitHead": "6d8ef9582d5abe6a8199431815dae761887c18d4"
138
138
  }