{"_id":"@adaptiveworx/iac-policies","_rev":"7-d6f5cc6b07aa947671ee4d229f1c791c","name":"@adaptiveworx/iac-policies","dist-tags":{"latest":"0.2.3"},"versions":{"0.1.0":{"name":"@adaptiveworx/iac-policies","version":"0.1.0","keywords":["pulumi","policy-pack","crossguard","iac","infrastructure","governance","compliance","aws","multi-cloud","adaptiveworx"],"license":"Apache-2.0","_id":"@adaptiveworx/iac-policies@0.1.0","maintainers":[{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"}],"homepage":"https://github.com/AdaptiveWorX/flux-core/tree/main/packages/iac-policies#readme","bugs":{"url":"https://github.com/AdaptiveWorX/flux-core/issues"},"dist":{"shasum":"0751152a02484c1870014e1d44a45957a3707fe3","tarball":"https://registry.npmjs.org/@adaptiveworx/iac-policies/-/iac-policies-0.1.0.tgz","fileCount":9,"integrity":"sha512-/Lzpzka2+CYT8+ZOFIBZnbZH7FLnKik+qzIuNu4Ajiu9ih8/5FlcdRuKHBRNifOlqoscM8ey5YwnB+OmAd2ClA==","signatures":[{"sig":"MEQCIEk8LwlQ775d8HTZGjD54cGEMBn1OHqCbE/X7zumFOQzAiA0V7IzMYiZcfsjPk0IKZMv6roKzatqdkX2907Kq4QXKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptiveworx%2fiac-policies@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37730},"main":"./src/index.ts","type":"module","_from":"file:adaptiveworx-iac-policies-0.1.0.tgz","types":"./src/index.ts","engines":{"node":">=24.0.0"},"exports":{".":"./src/index.ts","./src":"./src/","./package.json":"./package.json"},"_npmUser":{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"},"_resolved":"/tmp/59899a75a98ca675ee73ca77e116c6a5/adaptiveworx-iac-policies-0.1.0.tgz","_integrity":"sha512-/Lzpzka2+CYT8+ZOFIBZnbZH7FLnKik+qzIuNu4Ajiu9ih8/5FlcdRuKHBRNifOlqoscM8ey5YwnB+OmAd2ClA==","repository":{"url":"git+https://github.com/AdaptiveWorX/flux-core.git","type":"git","directory":"packages/iac-policies"},"_npmVersion":"11.11.0","description":"Pulumi CrossGuard policy pack for AdaptiveWorX™ infrastructure governance: required-tag enforcement, environment-aware deployment gates, region allowlisting, and tenant-aware compliance frameworks.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@pulumi/policy":"^1.18.1","@pulumi/pulumi":"^3.200.0"},"peerDependencies":{"@pulumi/policy":"^1.18.0","@pulumi/pulumi":"^3.150.0"},"_npmOperationalInternal":{"tmp":"tmp/iac-policies_0.1.0_1777473025680_0.08292729796539922","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adaptiveworx/iac-policies","version":"0.1.1","keywords":["pulumi","policy-pack","crossguard","iac","infrastructure","governance","compliance","aws","multi-cloud","adaptiveworx"],"license":"Apache-2.0","_id":"@adaptiveworx/iac-policies@0.1.1","maintainers":[{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"}],"homepage":"https://github.com/AdaptiveWorX/flux-core/tree/main/packages/iac-policies#readme","bugs":{"url":"https://github.com/AdaptiveWorX/flux-core/issues"},"dist":{"shasum":"633b47ea28eecf994bb167978089491d705720ec","tarball":"https://registry.npmjs.org/@adaptiveworx/iac-policies/-/iac-policies-0.1.1.tgz","fileCount":9,"integrity":"sha512-R4aHuWjiQYSSAdgoTQ1GR3u1X4Too4FGCqnLsaWoHIHu+1JXohn2hZ8kh6oRH7R+lG0cnX+oJ9OWvp7vbHyLhg==","signatures":[{"sig":"MEYCIQD5q6phI59Xt40Q9OVI5gaZKceQesG9FLYvr+gx+MvddQIhAIn+0+YaC4djMzPW/2CEj/bpbsV5KcK57PoC0izdp9pZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptiveworx%2fiac-policies@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37876},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"node":">=24.0.0"},"exports":{".":"./src/index.ts","./src":"./src/","./package.json":"./package.json"},"gitHead":"b8a8f7d13ad8d3259b1894f42de1dfa3ed465c74","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c828f3bf-4e31-4170-b5a2-0456e8d420ce"}},"repository":{"url":"git+https://github.com/AdaptiveWorX/flux-core.git","type":"git","directory":"packages/iac-policies"},"_npmVersion":"11.11.0","description":"Pulumi CrossGuard policy pack for AdaptiveWorX™ infrastructure governance: required-tag enforcement, environment-aware deployment gates, region allowlisting, and tenant-aware compliance frameworks.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@pulumi/policy":"^1.18.1","@pulumi/pulumi":"^3.200.0"},"peerDependencies":{"@pulumi/policy":"^1.18.0","@pulumi/pulumi":"^3.150.0"},"_npmOperationalInternal":{"tmp":"tmp/iac-policies_0.1.1_1777478658552_0.44801758784078793","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@adaptiveworx/iac-policies","version":"0.1.2","keywords":["pulumi","policy-pack","crossguard","iac","infrastructure","governance","compliance","aws","multi-cloud","adaptiveworx"],"license":"Apache-2.0","_id":"@adaptiveworx/iac-policies@0.1.2","maintainers":[{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"}],"homepage":"https://github.com/AdaptiveWorX/iac-core/tree/main/packages/iac-policies#readme","bugs":{"url":"https://github.com/AdaptiveWorX/iac-core/issues"},"dist":{"shasum":"ba22ef29e5235716281b2c0b46710218ac192cd9","tarball":"https://registry.npmjs.org/@adaptiveworx/iac-policies/-/iac-policies-0.1.2.tgz","fileCount":9,"integrity":"sha512-c/UUW7Gbaf1lzxpL1W7CMPEUw/h8sjitED5CQ9nLwo6e5YE5/DyFrLW9Vtzxpra5p9aMkETraf7hyONRO36Efg==","signatures":[{"sig":"MEQCIB+zWLDYBzbSV+bsXqfmEv+fwWrI7xGD1WJDhaq87C/ZAiAjxUjhcRGz0AzkXDmxfQfzelOvPKTxXmhRjSqmNiHTLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptiveworx%2fiac-policies@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38017},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"node":">=24.0.0"},"exports":{".":"./src/index.ts","./src":"./src/","./package.json":"./package.json"},"gitHead":"3a3589ae241cd6ded876591e15157c215f302d42","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:266d6ca3-6419-4340-89e6-b749a4fc4059"}},"repository":{"url":"git+https://github.com/AdaptiveWorX/iac-core.git","type":"git","directory":"packages/iac-policies"},"_npmVersion":"11.11.0","description":"Pulumi CrossGuard policy pack for AdaptiveWorX™ infrastructure governance: required-tag enforcement, environment-aware deployment gates, region allowlisting, and tenant-aware compliance frameworks.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@pulumi/policy":"^1.18.1","@pulumi/pulumi":"^3.200.0"},"peerDependencies":{"@pulumi/policy":"^1.18.0","@pulumi/pulumi":"^3.150.0"},"_npmOperationalInternal":{"tmp":"tmp/iac-policies_0.1.2_1777656630220_0.12676750212361143","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@adaptiveworx/iac-policies","version":"0.2.0","keywords":["pulumi","policy-pack","crossguard","iac","infrastructure","governance","compliance","aws","azure","multi-cloud","adaptiveworx"],"license":"Apache-2.0","_id":"@adaptiveworx/iac-policies@0.2.0","maintainers":[{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"}],"homepage":"https://github.com/AdaptiveWorX/iac-core/tree/main/packages/iac-policies#readme","bugs":{"url":"https://github.com/AdaptiveWorX/iac-core/issues"},"dist":{"shasum":"eff5976612358e3ae3b52fb6e1cca8b2c95a0a49","tarball":"https://registry.npmjs.org/@adaptiveworx/iac-policies/-/iac-policies-0.2.0.tgz","fileCount":37,"integrity":"sha512-qc97ucBaOnpL2bBgDlYGYbvj91MczCt8D+2g+z5l+QndMxtEtCFLpOah2AiSwvhez5lO0yHjHzDNT32rwTWOCg==","signatures":[{"sig":"MEYCIQDmzQSeQf1G3Ks0OceVbnCjgTJCDqA88j/4djxn9bDmfAIhAI8mM8SuuV60DS6kGRRCsUbzzc1p+/FUKCZ2Q+319ht1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptiveworx%2fiac-policies@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55667},"main":"./dist/index.js","type":"module","_from":"file:adaptiveworx-iac-policies-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:266d6ca3-6419-4340-89e6-b749a4fc4059"}},"_resolved":"/home/runner/work/iac-core/iac-core/packages/iac-policies/adaptiveworx-iac-policies-0.2.0.tgz","_integrity":"sha512-qc97ucBaOnpL2bBgDlYGYbvj91MczCt8D+2g+z5l+QndMxtEtCFLpOah2AiSwvhez5lO0yHjHzDNT32rwTWOCg==","repository":{"url":"git+https://github.com/AdaptiveWorX/iac-core.git","type":"git","directory":"packages/iac-policies"},"_npmVersion":"11.11.0","description":"Composable Pulumi CrossGuard policy primitives for cross-cloud infrastructure governance: tag enforcement, regional compliance, deployment gates, and AWS security baseline. Consumers compose primitives into their own PolicyPack.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@pulumi/policy":"^1.18.1","@pulumi/pulumi":"^3.200.0"},"peerDependencies":{"@pulumi/policy":"^1.18.0","@pulumi/pulumi":"^3.150.0"},"_npmOperationalInternal":{"tmp":"tmp/iac-policies_0.2.0_1777684411720_0.9958251144808783","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@adaptiveworx/iac-policies","version":"0.2.1","keywords":["pulumi","policy-pack","crossguard","iac","infrastructure","governance","compliance","aws","azure","multi-cloud","adaptiveworx"],"license":"Apache-2.0","_id":"@adaptiveworx/iac-policies@0.2.1","maintainers":[{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"}],"homepage":"https://github.com/AdaptiveWorX/iac-core/tree/main/packages/iac-policies#readme","bugs":{"url":"https://github.com/AdaptiveWorX/iac-core/issues"},"dist":{"shasum":"b222f33f22528eb6f6fd737d973ef1792d2c3e69","tarball":"https://registry.npmjs.org/@adaptiveworx/iac-policies/-/iac-policies-0.2.1.tgz","fileCount":37,"integrity":"sha512-yOaEn2QOs9YBhhexJGeTFI3MjURXSUUYw/T6Axs4+ZvKy6UtLq38tyrXsrlzuWrk9Xo1RHaAN2uqyJ/eh1By7A==","signatures":[{"sig":"MEQCIBWCLZzNSPKvTs2+Ja4IcaNyM9cR7EDhq3VraI86hKU6AiBdLFX8sQXiWPtuArZrpaUyXAuF/hVJKJ679u5FBiXuHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptiveworx%2fiac-policies@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56204},"main":"./dist/index.js","type":"module","_from":"file:adaptiveworx-iac-policies-0.2.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:266d6ca3-6419-4340-89e6-b749a4fc4059"}},"_resolved":"/home/runner/work/iac-core/iac-core/packages/iac-policies/adaptiveworx-iac-policies-0.2.1.tgz","_integrity":"sha512-yOaEn2QOs9YBhhexJGeTFI3MjURXSUUYw/T6Axs4+ZvKy6UtLq38tyrXsrlzuWrk9Xo1RHaAN2uqyJ/eh1By7A==","repository":{"url":"git+https://github.com/AdaptiveWorX/iac-core.git","type":"git","directory":"packages/iac-policies"},"_npmVersion":"11.11.0","description":"Composable Pulumi CrossGuard policy primitives for cross-cloud infrastructure governance: tag enforcement, regional compliance, deployment gates, and AWS security baseline. Consumers compose primitives into their own PolicyPack.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.0","@pulumi/policy":"^1.18.1","@pulumi/pulumi":"^3.200.0"},"peerDependencies":{"typescript":"^6.0.0","@pulumi/policy":"^1.18.0","@pulumi/pulumi":"^3.150.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/iac-policies_0.2.1_1777722975074_0.7036141314888691","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@adaptiveworx/iac-policies","version":"0.2.2","keywords":["pulumi","policy-pack","crossguard","iac","infrastructure","governance","compliance","aws","azure","multi-cloud","adaptiveworx"],"license":"Apache-2.0","_id":"@adaptiveworx/iac-policies@0.2.2","maintainers":[{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"}],"homepage":"https://github.com/AdaptiveWorX/iac-core/tree/main/packages/iac-policies#readme","bugs":{"url":"https://github.com/AdaptiveWorX/iac-core/issues"},"dist":{"shasum":"4e15803858407600f823cfe144148bb301f8985a","tarball":"https://registry.npmjs.org/@adaptiveworx/iac-policies/-/iac-policies-0.2.2.tgz","fileCount":37,"integrity":"sha512-PYNm5fXTyt33xKNpITX2kqBMTOssvqgVHYDlh79UUHtH4TKTCn4p/oXf7pewV2HAMTu57uqqtDUfNgcKhQ5eNQ==","signatures":[{"sig":"MEUCIQC49lYGsLLiKRuOxO5Xv8mo/bc+ey+xaZ/ZR4tPFGAg2wIgLAa5vL87HNoxT3Am8aR0n4ZuGsfUil6r3iJ4LmKlLdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFb1xSiS1/yFQ4VDsH9951A4A8LtmqkgPWhVZAycx2FIAiEA6LOuB9GgJZGFNI84taq5rsPnIimZOHU93oTszuIkxKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptiveworx%2fiac-policies@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56359},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/adaptiveworx-iac-policies-0.2.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=26.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"266d6ca3-6419-4340-89e6-b749a4fc4059"}},"_resolved":"/home/runner/work/_temp/pack/adaptiveworx-iac-policies-0.2.2.tgz","_integrity":"sha512-PYNm5fXTyt33xKNpITX2kqBMTOssvqgVHYDlh79UUHtH4TKTCn4p/oXf7pewV2HAMTu57uqqtDUfNgcKhQ5eNQ==","repository":{"url":"git+https://github.com/AdaptiveWorX/iac-core.git","type":"git","directory":"packages/iac-policies"},"_npmVersion":"11.19.1","description":"Composable Pulumi CrossGuard policy primitives for cross-cloud infrastructure governance: tag enforcement, regional compliance, deployment gates, and AWS security baseline. Consumers compose primitives into their own PolicyPack.","directories":{},"_nodeVersion":"26.10.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.0","@pulumi/policy":"^1.21.0","@pulumi/pulumi":"^3.266.0"},"peerDependencies":{"typescript":"^6.0.0 || ^7.0.0","@pulumi/policy":"^1.18.0","@pulumi/pulumi":"^3.150.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/iac-policies_0.2.2_1791057671307_0.1418781269699907","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"_id":"@adaptiveworx/iac-policies@0.2.3","bugs":{"url":"https://github.com/AdaptiveWorX/iac-core/issues"},"dist":{"shasum":"74ebcddca1bff1e4924da1e50b258e7e802f5d20","tarball":"https://registry.npmjs.org/@adaptiveworx/iac-policies/-/iac-policies-0.2.3.tgz","fileCount":37,"integrity":"sha512-el5hqNOF4gv271POQFlLN18hl4mVTr704dt5FUbAz1jYDzkPQmQ4vbho+JY/PA6TG4gbJ7aJI7q0d+EYH7+EoA==","signatures":[{"sig":"MEUCIQCnmM/5L2lp02eOQtwhZZe462npupBjUQwNaNxBevrecgIgFGOMo6VEUyUibxYBfmUiuvmptw7gFupQJAqkOtsTjGs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBIllPs4S62C+9cnHQjzwISw6Kgf3T3XtVWgX6dJ2COcAiBuLeWqQSDGPEpH5KIdfQ2om1N5hongcRTxpu82JPAlGQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptiveworx%2fiac-policies@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58442},"main":"./dist/index.js","name":"@adaptiveworx/iac-policies","type":"module","_from":"file:/home/runner/work/_temp/pack/adaptiveworx-iac-policies-0.2.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=26.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"license":"Apache-2.0","version":"0.2.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"266d6ca3-6419-4340-89e6-b749a4fc4059"}},"homepage":"https://github.com/AdaptiveWorX/iac-core/tree/main/packages/iac-policies#readme","keywords":["pulumi","policy-pack","crossguard","iac","infrastructure","governance","compliance","aws","azure","multi-cloud","adaptiveworx"],"_resolved":"/home/runner/work/_temp/pack/adaptiveworx-iac-policies-0.2.3.tgz","_integrity":"sha512-el5hqNOF4gv271POQFlLN18hl4mVTr704dt5FUbAz1jYDzkPQmQ4vbho+JY/PA6TG4gbJ7aJI7q0d+EYH7+EoA==","repository":{"url":"git+https://github.com/AdaptiveWorX/iac-core.git","type":"git","directory":"packages/iac-policies"},"_npmVersion":"11.19.1","description":"Composable Pulumi CrossGuard policy primitives for cross-cloud infrastructure governance: tag enforcement, regional compliance, deployment gates, and AWS security baseline. Consumers compose primitives into their own PolicyPack.","directories":{},"maintainers":[{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"}],"_nodeVersion":"26.10.0","dependencies":{"@adaptiveworx/iac-schemas":"^0.1.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.0","@pulumi/policy":"^1.21.0","@pulumi/pulumi":"^3.266.0"},"peerDependencies":{"typescript":"^6.0.0 || ^7.0.0","@pulumi/policy":"^1.18.0","@pulumi/pulumi":"^3.150.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/iac-policies_0.2.3_1791068895276_0.13796947021555894"}}},"time":{"created":"2026-04-29T14:30:25.580Z","modified":"2026-10-03T23:08:15.719Z","0.1.0":"2026-04-29T14:30:25.819Z","0.1.1":"2026-04-29T16:04:18.776Z","0.1.2":"2026-05-01T17:30:30.389Z","0.2.0":"2026-05-02T01:13:31.870Z","0.2.1":"2026-05-02T11:56:15.252Z","0.2.2":"2026-10-03T20:01:11.430Z","0.2.3":"2026-10-03T23:08:15.368Z"},"bugs":{"url":"https://github.com/AdaptiveWorX/iac-core/issues"},"license":"Apache-2.0","homepage":"https://github.com/AdaptiveWorX/iac-core/tree/main/packages/iac-policies#readme","keywords":["pulumi","policy-pack","crossguard","iac","infrastructure","governance","compliance","aws","azure","multi-cloud","adaptiveworx"],"repository":{"url":"git+https://github.com/AdaptiveWorX/iac-core.git","type":"git","directory":"packages/iac-policies"},"description":"Composable Pulumi CrossGuard policy primitives for cross-cloud infrastructure governance: tag enforcement, regional compliance, deployment gates, and AWS security baseline. Consumers compose primitives into their own PolicyPack.","maintainers":[{"name":"lloydmangnall","email":"lloyd@adaptiveworx.com"}],"readme":"# `@adaptiveworx/iac-policies`\n\nComposable Pulumi CrossGuard policy primitives. **A library, not a complete pack** — consumers compose primitives into their own `PolicyPack` with the configuration that fits their org.\n\nThree cross-cloud policies + one AWS-specific:\n\n| Factory | Cloud | What it does |\n|---|---|---|\n| [`requireTagsPolicy`](./src/policies/require-tags.ts) | cross-cloud | Reject resources missing required tags (or with mismatched expected values) |\n| [`regionalCompliancePolicy`](./src/policies/regional-compliance.ts) | cross-cloud (AWS-default; configurable for Azure/GCP) | Reject resources outside an allowed region list |\n| [`deploymentProtectionPolicy`](./src/policies/deployment-protection.ts) | cross-cloud | Block production deploys that aren't running in CI/CD |\n| [`awsSecurityBaselinePolicy`](./src/policies/aws-security-baseline.ts) | AWS | S3 public-ACL rejection + S3 encryption-config presence |\n\nPlus type exports for compliance annotation: [`FrameworkControls`](./src/types.ts), [`ComplianceEvidence`](./src/types.ts), and a future-use [`emitEvidence`](./src/evidence.ts) stub.\n\n## Install\n\n```bash\npnpm add @adaptiveworx/iac-policies @pulumi/policy @pulumi/pulumi\n```\n\n`@pulumi/policy` and `@pulumi/pulumi` are peer dependencies.\n\n## How a consumer composes a pack\n\nEach consumer maintains their own policy-pack directory in their repo:\n\n```\nmy-repo/\n└── policies/\n    ├── PulumiPolicy.yaml     # pack manifest\n    ├── package.json          # depends on @adaptiveworx/iac-policies + @pulumi/policy + @pulumi/pulumi\n    └── index.ts              # imports primitives + constructs PolicyPack\n```\n\n`PulumiPolicy.yaml`:\n\n```yaml\nname: my-org-policies\nruntime: nodejs\ndescription: My org's policy pack composed from @adaptiveworx/iac-policies primitives\n```\n\n`index.ts` examples below.\n\n### Example: AWS consumer\n\nUses all four primitives. Pulls stack context from\n`@adaptiveworx/iac-core` so tag values stay in sync with the Pulumi\nstack the pack runs against.\n\n```ts\nimport { PolicyPack } from \"@pulumi/policy\";\nimport { detectStackContext } from \"@adaptiveworx/iac-core\";\nimport {\n  requireTagsPolicy, // requiredTags defaults to DEFAULT_REQUIRED_TAGS: Environment, Workload, ManagedBy\n  regionalCompliancePolicy,\n  awsSecurityBaselinePolicy,\n  deploymentProtectionPolicy,\n  AWS_NON_TAGGABLE_RESOURCES,\n} from \"@adaptiveworx/iac-policies\";\n\nconst ctx = detectStackContext();\n\nnew PolicyPack(\"my-aws-policies\", {\n  policies: [\n    requireTagsPolicy({\n      requiredTags: [\"Environment\", \"AccountPurpose\", \"StackPurpose\"],\n      expectedTagValues: () => ({\n        Environment: ctx.targetEnvironment ?? ctx.environment,\n        AccountPurpose: ctx.accountPurpose,\n        StackPurpose: ctx.stackPurpose,\n      }),\n      skipResourceTypes: AWS_NON_TAGGABLE_RESOURCES,\n      skipResourceTypePrefixes: [\"pulumi:\"],\n    }),\n\n    regionalCompliancePolicy({\n      allowedRegions:\n        ctx.environment === \"prd\" ? [\"us-east-1\", \"us-west-2\"] : [\"us-east-1\"],\n    }),\n\n    awsSecurityBaselinePolicy(),\n\n    deploymentProtectionPolicy({\n      productionEnvironments: [\"prd\", \"sec\"],\n      environmentResolver: () => ctx.targetEnvironment ?? ctx.environment,\n    }),\n  ],\n});\n```\n\nThen deploy with the pack:\n\n```bash\npulumi preview --policy-pack ./policies\npulumi up      --policy-pack ./policies\n```\n\n### Example: Azure consumer\n\nCross-cloud primitives only. The consumer adds their own Azure-specific\nbaseline (storage, key vault, etc.) as additional policies in the same\npack when needed.\n\n```ts\nimport { PolicyPack } from \"@pulumi/policy\";\nimport {\n  requireTagsPolicy, // requiredTags defaults to DEFAULT_REQUIRED_TAGS: Environment, Workload, ManagedBy\n  regionalCompliancePolicy,\n  deploymentProtectionPolicy,\n} from \"@adaptiveworx/iac-policies\";\n\nnew PolicyPack(\"my-azure-policies\", {\n  policies: [\n    requireTagsPolicy({\n      requiredTags: [\"Environment\", \"Owner\"],\n    }),\n\n    regionalCompliancePolicy({\n      allowedRegions: [\"westus3\", \"eastus2\"],\n      resourceTypeMatcher: t => t.startsWith(\"azure-native:\"),\n      regionExtractor: args => args.props.location as string | undefined,\n    }),\n\n    deploymentProtectionPolicy({\n      productionEnvironments: [\"prod\"],\n      environmentResolver: () => process.env.PULUMI_STACK ?? \"dev\",\n    }),\n\n    // (No AWS baseline — write Azure-specific baseline policies as\n    //  needed and add them to this pack.)\n  ],\n});\n```\n\n## Why no built-in pack?\n\nMost policy concerns are consumer-specific:\n\n- **Required tags vary** — `Environment`, `Owner`, `CostCenter`, `Compliance`, …\n- **Allowed regions vary** — by tenant, by data-residency, by environment\n- **Compliance frameworks vary** — HIPAA for healthcare; PCI-DSS for payments; ISO27001 baseline for everyone\n- **Production gates vary** — `prd`, `prod`, `production`, sometimes also `sec`/`mgmt`\n- **Cloud surface varies** — AWS-only consumers don't want Azure-specific checks and vice versa\n\nShipping a pre-built pack would either be too generic to be useful or too AdaptiveWorX-specific to share. A library of primitives is composable, configurable, and lets each consumer match their own conventions.\n\n## Compliance annotations\n\nUse [`FrameworkControls`](./src/types.ts) to document which compliance framework requirements a given policy satisfies:\n\n```ts\nimport type { FrameworkControls } from \"@adaptiveworx/iac-policies\";\n\nconst tagControls: FrameworkControls = {\n  \"NIST-800-53\": [\"CM-2\", \"CM-8\"],\n  ISO27001: [\"A.8.1.1\"],\n};\n```\n\nThese are annotation types — they don't drive runtime behavior, but they're what compliance reporting and audit-evidence pipelines hook into.\n\n## Stability\n\n`0.x` while the primitive surfaces stabilize. Backwards-incompatible API changes will be major bumps; minor versions add new primitives or non-breaking option fields.\n\n## License\n\n[Apache 2.0](./LICENSE). See [NOTICE](./NOTICE).\n\n## Repository\n\n[github.com/AdaptiveWorX/iac-core/tree/main/packages/iac-policies](https://github.com/AdaptiveWorX/iac-core/tree/main/packages/iac-policies). Issues: [iac-core/issues](https://github.com/AdaptiveWorX/iac-core/issues).\n","readmeFilename":"README.md"}