@intentius/chant-lexicon-gcp 0.41.20 → 0.44.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/composites/index.d.ts +2 -0
- package/dist/composites/index.d.ts.map +1 -1
- package/dist/composites/landing-zone.d.ts +67 -0
- package/dist/composites/landing-zone.d.ts.map +1 -0
- package/dist/deep-observe-hooks.d.ts +16 -3
- package/dist/deep-observe-hooks.d.ts.map +1 -1
- package/dist/deep-observe.d.ts +68 -139
- package/dist/deep-observe.d.ts.map +1 -1
- package/dist/describe-resources.d.ts +27 -3
- package/dist/describe-resources.d.ts.map +1 -1
- package/dist/governance.d.ts +101 -0
- package/dist/governance.d.ts.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +5 -2
- package/dist/lint/audit-catalog.d.ts.map +1 -1
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/post-synth/wgc501.d.ts +18 -0
- package/dist/lint/post-synth/wgc501.d.ts.map +1 -0
- package/dist/lint/post-synth/wgc502.d.ts +10 -0
- package/dist/lint/post-synth/wgc502.d.ts.map +1 -0
- package/dist/lint/post-synth/wgc503.d.ts +11 -0
- package/dist/lint/post-synth/wgc503.d.ts.map +1 -0
- package/dist/manifest.json +1 -1
- package/dist/okf/index.md +519 -0
- package/dist/okf/rules/WGC001.md +15 -0
- package/dist/okf/rules/WGC002.md +16 -0
- package/dist/okf/rules/WGC003.md +15 -0
- package/dist/okf/rules/WGC101.md +16 -0
- package/dist/okf/rules/WGC102.md +15 -0
- package/dist/okf/rules/WGC103.md +15 -0
- package/dist/okf/rules/WGC104.md +15 -0
- package/dist/okf/rules/WGC105.md +15 -0
- package/dist/okf/rules/WGC106.md +15 -0
- package/dist/okf/rules/WGC107.md +15 -0
- package/dist/okf/rules/WGC108.md +15 -0
- package/dist/okf/rules/WGC109.md +11 -0
- package/dist/okf/rules/WGC110.md +15 -0
- package/dist/okf/rules/WGC111.md +15 -0
- package/dist/okf/rules/WGC112.md +15 -0
- package/dist/okf/rules/WGC113.md +16 -0
- package/dist/okf/rules/WGC201.md +15 -0
- package/dist/okf/rules/WGC202.md +11 -0
- package/dist/okf/rules/WGC203.md +11 -0
- package/dist/okf/rules/WGC204.md +15 -0
- package/dist/okf/rules/WGC301.md +15 -0
- package/dist/okf/rules/WGC302.md +15 -0
- package/dist/okf/rules/WGC303.md +15 -0
- package/dist/okf/rules/WGC401.md +15 -0
- package/dist/okf/rules/WGC402.md +15 -0
- package/dist/okf/rules/WGC403.md +15 -0
- package/dist/okf/rules/WGC501.md +15 -0
- package/dist/okf/rules/WGC502.md +11 -0
- package/dist/okf/rules/WGC503.md +15 -0
- package/dist/okf/types/API.md +21 -0
- package/dist/okf/types/APIConfig.md +15 -0
- package/dist/okf/types/APIQuotaAdjusterSettings.md +15 -0
- package/dist/okf/types/APIQuotaPreference.md +15 -0
- package/dist/okf/types/AccessBoundaryPolicy.md +15 -0
- package/dist/okf/types/AccessLevel.md +15 -0
- package/dist/okf/types/AccessLevelCondition.md +15 -0
- package/dist/okf/types/AccessPolicy.md +15 -0
- package/dist/okf/types/AddonsConfig.md +15 -0
- package/dist/okf/types/AgentPool.md +15 -0
- package/dist/okf/types/AiplatformModel.md +15 -0
- package/dist/okf/types/AistreamsCluster.md +15 -0
- package/dist/okf/types/AlertPolicy.md +15 -0
- package/dist/okf/types/AlloydbBackup.md +15 -0
- package/dist/okf/types/AlloydbCluster.md +15 -0
- package/dist/okf/types/AlloydbInstance.md +15 -0
- package/dist/okf/types/AnalyticsAccount.md +15 -0
- package/dist/okf/types/AndroidApp.md +15 -0
- package/dist/okf/types/AnywhereCache.md +15 -0
- package/dist/okf/types/ApigatewayGateway.md +15 -0
- package/dist/okf/types/ApigeeEnvironment.md +15 -0
- package/dist/okf/types/ApigeeInstance.md +15 -0
- package/dist/okf/types/ApihubDeployment.md +15 -0
- package/dist/okf/types/ApikeysKey.md +15 -0
- package/dist/okf/types/AppConnection.md +15 -0
- package/dist/okf/types/AppConnector.md +15 -0
- package/dist/okf/types/AppGateway.md +15 -0
- package/dist/okf/types/AppProfile.md +15 -0
- package/dist/okf/types/Application.md +15 -0
- package/dist/okf/types/ArtifactRegistryRepository.md +15 -0
- package/dist/okf/types/Assignment.md +15 -0
- package/dist/okf/types/Attestor.md +15 -0
- package/dist/okf/types/AuthorizationPolicy.md +15 -0
- package/dist/okf/types/AuthorizedView.md +15 -0
- package/dist/okf/types/AutokeyConfig.md +15 -0
- package/dist/okf/types/Automation.md +15 -0
- package/dist/okf/types/Autoscaler.md +15 -0
- package/dist/okf/types/AutoscalingPolicy.md +15 -0
- package/dist/okf/types/BQJob.md +15 -0
- package/dist/okf/types/BackendBucket.md +15 -0
- package/dist/okf/types/BackendBucketSignedURLKey.md +15 -0
- package/dist/okf/types/BackendService.md +15 -0
- package/dist/okf/types/BackendServiceSignedURLKey.md +15 -0
- package/dist/okf/types/BackupPlanAssociation.md +15 -0
- package/dist/okf/types/BackupPolicy.md +15 -0
- package/dist/okf/types/BackupdrBackupPlan.md +15 -0
- package/dist/okf/types/BackupdrBackupVault.md +15 -0
- package/dist/okf/types/Batch.md +15 -0
- package/dist/okf/types/BatchJob.md +15 -0
- package/dist/okf/types/BatchTask.md +15 -0
- package/dist/okf/types/BigLakeCatalog.md +15 -0
- package/dist/okf/types/BigLakeDatabase.md +15 -0
- package/dist/okf/types/BigLakeTable.md +15 -0
- package/dist/okf/types/BigQueryDataPolicy.md +15 -0
- package/dist/okf/types/BigQueryDataset.md +15 -0
- package/dist/okf/types/BigQueryExport.md +15 -0
- package/dist/okf/types/BigQueryTable.md +15 -0
- package/dist/okf/types/BigqueryconnectionConnection.md +15 -0
- package/dist/okf/types/BigquerydatatransferConfig.md +15 -0
- package/dist/okf/types/BigqueryreservationReservation.md +15 -0
- package/dist/okf/types/BigtableInstance.md +15 -0
- package/dist/okf/types/BigtableTable.md +15 -0
- package/dist/okf/types/BillingAccount.md +15 -0
- package/dist/okf/types/BinaryauthorizationPolicy.md +15 -0
- package/dist/okf/types/Brand.md +15 -0
- package/dist/okf/types/BtBackup.md +15 -0
- package/dist/okf/types/BtCluster.md +15 -0
- package/dist/okf/types/Bucket.md +15 -0
- package/dist/okf/types/BucketAccessControl.md +15 -0
- package/dist/okf/types/Budget.md +15 -0
- package/dist/okf/types/CAPool.md +15 -0
- package/dist/okf/types/CapacityCommitment.md +15 -0
- package/dist/okf/types/CertificateAuthority.md +15 -0
- package/dist/okf/types/CertificateIssuanceConfig.md +15 -0
- package/dist/okf/types/CertificateMap.md +15 -0
- package/dist/okf/types/CertificateMapEntry.md +15 -0
- package/dist/okf/types/CertificateTemplate.md +15 -0
- package/dist/okf/types/CertificatemanagerCertificate.md +15 -0
- package/dist/okf/types/ClientConnectorService.md +15 -0
- package/dist/okf/types/ClientTLSPolicy.md +15 -0
- package/dist/okf/types/CloudBatchResourceAllowance.md +15 -0
- package/dist/okf/types/CloudFunction.md +15 -0
- package/dist/okf/types/CloudRunJob.md +15 -0
- package/dist/okf/types/CloudRunService.md +15 -0
- package/dist/okf/types/CloudbuildTrigger.md +15 -0
- package/dist/okf/types/ClouddmsPrivateConnection.md +15 -0
- package/dist/okf/types/CloudidentityGroup.md +15 -0
- package/dist/okf/types/CloudidentityMembership.md +15 -0
- package/dist/okf/types/CloudidsEndpoint.md +15 -0
- package/dist/okf/types/CloudschedulerJob.md +15 -0
- package/dist/okf/types/ComposerEnvironment.md +15 -0
- package/dist/okf/types/ComputeAddress.md +15 -0
- package/dist/okf/types/ComputeDisk.md +15 -0
- package/dist/okf/types/ComputeFirewallPolicy.md +15 -0
- package/dist/okf/types/ComputeHealthCheck.md +15 -0
- package/dist/okf/types/ComputeInstance.md +19 -0
- package/dist/okf/types/ComputeNetworkPeering.md +15 -0
- package/dist/okf/types/ComputeNodeGroup.md +15 -0
- package/dist/okf/types/ComputeReservation.md +15 -0
- package/dist/okf/types/ComputeRoute.md +15 -0
- package/dist/okf/types/ComputeSnapshot.md +15 -0
- package/dist/okf/types/ConfigcontrollerInstance.md +15 -0
- package/dist/okf/types/ConnectionProfile.md +15 -0
- package/dist/okf/types/ConnectivityTest.md +15 -0
- package/dist/okf/types/Connector.md +28 -0
- package/dist/okf/types/ConsentStore.md +15 -0
- package/dist/okf/types/ConsumerGroup.md +15 -0
- package/dist/okf/types/ConsumerQuotaOverride.md +15 -0
- package/dist/okf/types/Contact.md +15 -0
- package/dist/okf/types/ContainerattachedCluster.md +15 -0
- package/dist/okf/types/ConversionWorkspace.md +15 -0
- package/dist/okf/types/CryptoKeyVersion.md +15 -0
- package/dist/okf/types/CustomClass.md +15 -0
- package/dist/okf/types/CustomConstraint.md +15 -0
- package/dist/okf/types/CustomRole.md +15 -0
- package/dist/okf/types/CustomTargetType.md +15 -0
- package/dist/okf/types/DICOMStore.md +15 -0
- package/dist/okf/types/DNSAuthorization.md +15 -0
- package/dist/okf/types/DNSManagedZone.md +15 -0
- package/dist/okf/types/DNSRecordSet.md +15 -0
- package/dist/okf/types/Dashboard.md +15 -0
- package/dist/okf/types/DataExchange.md +15 -0
- package/dist/okf/types/DataLabelingJob.md +15 -0
- package/dist/okf/types/DataPolicy.md +15 -0
- package/dist/okf/types/DataStore.md +15 -0
- package/dist/okf/types/DataStoreTargetSite.md +15 -0
- package/dist/okf/types/Database.md +15 -0
- package/dist/okf/types/DatacatalogEntryGroup.md +15 -0
- package/dist/okf/types/DataflowJob.md +15 -0
- package/dist/okf/types/DataformRepository.md +15 -0
- package/dist/okf/types/DatafusionInstance.md +15 -0
- package/dist/okf/types/DataplexEntryGroup.md +15 -0
- package/dist/okf/types/DataplexTask.md +15 -0
- package/dist/okf/types/DataprocCluster.md +15 -0
- package/dist/okf/types/DataprocJob.md +15 -0
- package/dist/okf/types/DataprocNodeGroup.md +15 -0
- package/dist/okf/types/DataprocSession.md +15 -0
- package/dist/okf/types/DatasetAccess.md +15 -0
- package/dist/okf/types/DatastoreIndex.md +15 -0
- package/dist/okf/types/DatastreamPrivateConnection.md +15 -0
- package/dist/okf/types/DatastreamRoute.md +15 -0
- package/dist/okf/types/DefaultObjectAccessControl.md +15 -0
- package/dist/okf/types/DefaultSupportedIDPConfig.md +15 -0
- package/dist/okf/types/DeidentifyTemplate.md +15 -0
- package/dist/okf/types/DeliveryPipeline.md +15 -0
- package/dist/okf/types/DenyPolicy.md +15 -0
- package/dist/okf/types/DeployPolicy.md +15 -0
- package/dist/okf/types/DeploymentResourcePool.md +15 -0
- package/dist/okf/types/DeploymentmanagerDeployment.md +15 -0
- package/dist/okf/types/Device.md +15 -0
- package/dist/okf/types/DeviceRegistry.md +15 -0
- package/dist/okf/types/DevicestreamingSession.md +15 -0
- package/dist/okf/types/DialogflowAgent.md +15 -0
- package/dist/okf/types/DialogflowEntityType.md +15 -0
- package/dist/okf/types/DialogflowIntent.md +15 -0
- package/dist/okf/types/DialogflowcxAgent.md +15 -0
- package/dist/okf/types/DialogflowcxEntityType.md +15 -0
- package/dist/okf/types/DialogflowcxIntent.md +15 -0
- package/dist/okf/types/DiscoveredService.md +15 -0
- package/dist/okf/types/DiscoveredWorkload.md +15 -0
- package/dist/okf/types/DiskResourcePolicyAttachment.md +15 -0
- package/dist/okf/types/DnsPolicy.md +15 -0
- package/dist/okf/types/Document.md +15 -0
- package/dist/okf/types/DomainMapping.md +15 -0
- package/dist/okf/types/EdgeCacheKeyset.md +15 -0
- package/dist/okf/types/EdgeCacheOrigin.md +15 -0
- package/dist/okf/types/EdgeCacheService.md +15 -0
- package/dist/okf/types/EdgecontainerCluster.md +15 -0
- package/dist/okf/types/EdgecontainerNodePool.md +15 -0
- package/dist/okf/types/EdgenetworkNetwork.md +15 -0
- package/dist/okf/types/EndpointAttachment.md +15 -0
- package/dist/okf/types/EndpointPolicy.md +15 -0
- package/dist/okf/types/Engine.md +15 -0
- package/dist/okf/types/Enrollment.md +15 -0
- package/dist/okf/types/Entitlement.md +15 -0
- package/dist/okf/types/Entry.md +15 -0
- package/dist/okf/types/EntryType.md +15 -0
- package/dist/okf/types/Envgroup.md +15 -0
- package/dist/okf/types/EnvgroupAttachment.md +15 -0
- package/dist/okf/types/EventarcChannel.md +15 -0
- package/dist/okf/types/EventarcTrigger.md +15 -0
- package/dist/okf/types/ExampleStore.md +15 -0
- package/dist/okf/types/ExternalAccessRule.md +15 -0
- package/dist/okf/types/ExternalAddress.md +15 -0
- package/dist/okf/types/ExternalVPNGateway.md +15 -0
- package/dist/okf/types/FHIRStore.md +15 -0
- package/dist/okf/types/Feature.md +15 -0
- package/dist/okf/types/FeatureMembership.md +15 -0
- package/dist/okf/types/Featurestore.md +15 -0
- package/dist/okf/types/FeaturestoreEntityType.md +15 -0
- package/dist/okf/types/FeaturestoreEntityTypeFeature.md +15 -0
- package/dist/okf/types/Federation.md +15 -0
- package/dist/okf/types/Feed.md +15 -0
- package/dist/okf/types/Field.md +15 -0
- package/dist/okf/types/FilestoreBackup.md +15 -0
- package/dist/okf/types/FilestoreInstance.md +15 -0
- package/dist/okf/types/FilestoreSnapshot.md +15 -0
- package/dist/okf/types/FirebaseProject.md +15 -0
- package/dist/okf/types/FirebasedatabaseInstance.md +15 -0
- package/dist/okf/types/FirebasehostingChannel.md +15 -0
- package/dist/okf/types/FirestoreBackupSchedule.md +15 -0
- package/dist/okf/types/FirestoreIndex.md +15 -0
- package/dist/okf/types/Firewall.md +15 -0
- package/dist/okf/types/FirewallPolicyAssociation.md +15 -0
- package/dist/okf/types/FirewallPolicyRule.md +15 -0
- package/dist/okf/types/FirewallRule.md +15 -0
- package/dist/okf/types/FlexTemplateJob.md +15 -0
- package/dist/okf/types/FlexibleAppVersion.md +15 -0
- package/dist/okf/types/Flow.md +15 -0
- package/dist/okf/types/FolderFeed.md +15 -0
- package/dist/okf/types/ForwardingRule.md +15 -0
- package/dist/okf/types/Fulfillment.md +15 -0
- package/dist/okf/types/Function.md +15 -0
- package/dist/okf/types/FutureReservation.md +15 -0
- package/dist/okf/types/GCPServiceAccount.md +15 -0
- package/dist/okf/types/GCPUserAccessBinding.md +15 -0
- package/dist/okf/types/GCPolicy.md +15 -0
- package/dist/okf/types/GKECluster.md +15 -0
- package/dist/okf/types/GRPCRoute.md +15 -0
- package/dist/okf/types/GcsFolder.md +15 -0
- package/dist/okf/types/GkebackupBackup.md +15 -0
- package/dist/okf/types/GkebackupBackupPlan.md +15 -0
- package/dist/okf/types/GkehubMembership.md +15 -0
- package/dist/okf/types/GkehubNamespace.md +15 -0
- package/dist/okf/types/GlobalNetworkEndpoint.md +15 -0
- package/dist/okf/types/GlobalNetworkEndpointGroup.md +15 -0
- package/dist/okf/types/GoogleChannelConfig.md +15 -0
- package/dist/okf/types/GuestPolicy.md +15 -0
- package/dist/okf/types/HL7V2Store.md +15 -0
- package/dist/okf/types/HMACKey.md +15 -0
- package/dist/okf/types/HTTPHealthCheck.md +15 -0
- package/dist/okf/types/HTTPRoute.md +15 -0
- package/dist/okf/types/HTTPSHealthCheck.md +15 -0
- package/dist/okf/types/HealthcareDataset.md +15 -0
- package/dist/okf/types/Hub.md +15 -0
- package/dist/okf/types/IAMAuditConfig.md +20 -0
- package/dist/okf/types/IAMPolicy.md +15 -0
- package/dist/okf/types/IAMPolicyMember.md +15 -0
- package/dist/okf/types/IdentityAwareProxyClient.md +15 -0
- package/dist/okf/types/IdentityplatformConfig.md +15 -0
- package/dist/okf/types/Image.md +15 -0
- package/dist/okf/types/ImportJob.md +15 -0
- package/dist/okf/types/InboundSAMLConfig.md +15 -0
- package/dist/okf/types/IndexEndpoint.md +15 -0
- package/dist/okf/types/InspectTemplate.md +15 -0
- package/dist/okf/types/InstanceAttachment.md +15 -0
- package/dist/okf/types/InstanceConfig.md +15 -0
- package/dist/okf/types/InstanceEndpoint.md +15 -0
- package/dist/okf/types/InstanceGroup.md +15 -0
- package/dist/okf/types/InstanceGroupManager.md +15 -0
- package/dist/okf/types/InstanceGroupNamedPort.md +15 -0
- package/dist/okf/types/InstanceTemplate.md +15 -0
- package/dist/okf/types/InterceptDeployment.md +15 -0
- package/dist/okf/types/InterceptEndpointGroup.md +15 -0
- package/dist/okf/types/Interconnect.md +15 -0
- package/dist/okf/types/InterconnectAttachment.md +15 -0
- package/dist/okf/types/InternalRange.md +15 -0
- package/dist/okf/types/JobTrigger.md +15 -0
- package/dist/okf/types/KMSCryptoKey.md +19 -0
- package/dist/okf/types/KMSKeyRing.md +15 -0
- package/dist/okf/types/KeyHandle.md +15 -0
- package/dist/okf/types/KeyRingImportJob.md +15 -0
- package/dist/okf/types/LBRouteExtension.md +15 -0
- package/dist/okf/types/Lake.md +15 -0
- package/dist/okf/types/Lien.md +15 -0
- package/dist/okf/types/Link.md +15 -0
- package/dist/okf/types/Listing.md +15 -0
- package/dist/okf/types/LocationTagBinding.md +15 -0
- package/dist/okf/types/LogBucket.md +15 -0
- package/dist/okf/types/LogExclusion.md +15 -0
- package/dist/okf/types/LogMetric.md +15 -0
- package/dist/okf/types/LogSink.md +15 -0
- package/dist/okf/types/LogView.md +15 -0
- package/dist/okf/types/LogicalView.md +15 -0
- package/dist/okf/types/Machine.md +15 -0
- package/dist/okf/types/MachineImage.md +15 -0
- package/dist/okf/types/ManagedFolder.md +15 -0
- package/dist/okf/types/ManagedSSLCertificate.md +15 -0
- package/dist/okf/types/ManagedkafkaCluster.md +15 -0
- package/dist/okf/types/ManagedkafkaTopic.md +15 -0
- package/dist/okf/types/ManagementServer.md +15 -0
- package/dist/okf/types/MaterializedView.md +15 -0
- package/dist/okf/types/MembershipBinding.md +15 -0
- package/dist/okf/types/MemcacheInstance.md +15 -0
- package/dist/okf/types/MemorystoreInstance.md +15 -0
- package/dist/okf/types/Mesh.md +15 -0
- package/dist/okf/types/MetadataStore.md +15 -0
- package/dist/okf/types/MetastoreBackup.md +15 -0
- package/dist/okf/types/MetastoreService.md +15 -0
- package/dist/okf/types/MetricDescriptor.md +15 -0
- package/dist/okf/types/MigrationJob.md +15 -0
- package/dist/okf/types/MlengineModel.md +15 -0
- package/dist/okf/types/MonGroup.md +15 -0
- package/dist/okf/types/MonService.md +15 -0
- package/dist/okf/types/MonitoredProject.md +15 -0
- package/dist/okf/types/MuteConfig.md +15 -0
- package/dist/okf/types/NATAddress.md +15 -0
- package/dist/okf/types/NetappBackupVault.md +15 -0
- package/dist/okf/types/NetworkAttachment.md +15 -0
- package/dist/okf/types/NetworkEdgeSecurityService.md +15 -0
- package/dist/okf/types/NetworkEndpoint.md +15 -0
- package/dist/okf/types/NetworkEndpointGroup.md +15 -0
- package/dist/okf/types/NetworkFirewallPolicy.md +15 -0
- package/dist/okf/types/NetworkFirewallPolicyAssociation.md +15 -0
- package/dist/okf/types/NetworkFirewallPolicyRule.md +15 -0
- package/dist/okf/types/NetworkPeeringRoutesConfig.md +15 -0
- package/dist/okf/types/NetworkPolicy.md +15 -0
- package/dist/okf/types/NetworkservicesGateway.md +15 -0
- package/dist/okf/types/Node.md +21 -0
- package/dist/okf/types/NodePool.md +15 -0
- package/dist/okf/types/NodeTemplate.md +15 -0
- package/dist/okf/types/Note.md +15 -0
- package/dist/okf/types/NotebookInstance.md +15 -0
- package/dist/okf/types/NotebooksEnvironment.md +15 -0
- package/dist/okf/types/Notification.md +15 -0
- package/dist/okf/types/NotificationChannel.md +15 -0
- package/dist/okf/types/NotificationConfig.md +15 -0
- package/dist/okf/types/OAuthIDPConfig.md +15 -0
- package/dist/okf/types/OSPolicyAssignment.md +15 -0
- package/dist/okf/types/Occurrence.md +15 -0
- package/dist/okf/types/Organization.md +15 -0
- package/dist/okf/types/OrganizationFeed.md +15 -0
- package/dist/okf/types/OrganizationSecurityPolicy.md +15 -0
- package/dist/okf/types/OrganizationSecurityPolicyAssociation.md +15 -0
- package/dist/okf/types/OrganizationSecurityPolicyRule.md +15 -0
- package/dist/okf/types/OrgpolicyPolicy.md +15 -0
- package/dist/okf/types/PacketMirroring.md +15 -0
- package/dist/okf/types/Page.md +15 -0
- package/dist/okf/types/Parameter.md +15 -0
- package/dist/okf/types/ParameterVersion.md +15 -0
- package/dist/okf/types/PartialPolicy.md +15 -0
- package/dist/okf/types/PatchDeployment.md +15 -0
- package/dist/okf/types/PeeredDNSDomain.md +15 -0
- package/dist/okf/types/PerInstanceConfig.md +15 -0
- package/dist/okf/types/PhraseSet.md +15 -0
- package/dist/okf/types/PlatformPolicy.md +15 -0
- package/dist/okf/types/PolicyTag.md +15 -0
- package/dist/okf/types/PrivateCloud.md +15 -0
- package/dist/okf/types/PrivatecaCertificate.md +15 -0
- package/dist/okf/types/Processor.md +15 -0
- package/dist/okf/types/ProcessorDefaultVersion.md +15 -0
- package/dist/okf/types/ProcessorVersion.md +15 -0
- package/dist/okf/types/ProjectDefaultConfig.md +15 -0
- package/dist/okf/types/ProjectFeed.md +15 -0
- package/dist/okf/types/ProjectMetadata.md +15 -0
- package/dist/okf/types/PubSubSnapshot.md +15 -0
- package/dist/okf/types/PubSubSubscription.md +15 -0
- package/dist/okf/types/PubSubTopic.md +15 -0
- package/dist/okf/types/PubsubliteReservation.md +15 -0
- package/dist/okf/types/PubsubliteTopic.md +15 -0
- package/dist/okf/types/RecaptchaenterpriseFirewallPolicy.md +15 -0
- package/dist/okf/types/RecaptchaenterpriseKey.md +15 -0
- package/dist/okf/types/Recognizer.md +15 -0
- package/dist/okf/types/RedisCluster.md +15 -0
- package/dist/okf/types/RedisInstance.md +15 -0
- package/dist/okf/types/RegionAutoscaler.md +15 -0
- package/dist/okf/types/RegionDiskResourcePolicyAttachment.md +15 -0
- package/dist/okf/types/RegionNetworkEndpointGroup.md +15 -0
- package/dist/okf/types/RegionPerInstanceConfig.md +15 -0
- package/dist/okf/types/RegionSSLPolicy.md +15 -0
- package/dist/okf/types/RegionalEndpoint.md +15 -0
- package/dist/okf/types/ResourceBundle.md +15 -0
- package/dist/okf/types/ResourcePolicy.md +15 -0
- package/dist/okf/types/ResourcemanagerFolder.md +15 -0
- package/dist/okf/types/ResourcemanagerPolicy.md +15 -0
- package/dist/okf/types/ResourcemanagerProject.md +15 -0
- package/dist/okf/types/ResponsePolicy.md +15 -0
- package/dist/okf/types/ResponsePolicyRule.md +15 -0
- package/dist/okf/types/Restore.md +15 -0
- package/dist/okf/types/RestorePlan.md +15 -0
- package/dist/okf/types/Router.md +15 -0
- package/dist/okf/types/RouterInterface.md +15 -0
- package/dist/okf/types/RouterNAT.md +15 -0
- package/dist/okf/types/RouterPeer.md +15 -0
- package/dist/okf/types/Routine.md +15 -0
- package/dist/okf/types/Runtime.md +15 -0
- package/dist/okf/types/RuntimeTemplate.md +15 -0
- package/dist/okf/types/SQLDatabase.md +15 -0
- package/dist/okf/types/SQLInstance.md +21 -0
- package/dist/okf/types/SQLUser.md +15 -0
- package/dist/okf/types/SSHPublicKey.md +15 -0
- package/dist/okf/types/SSLCert.md +15 -0
- package/dist/okf/types/SSLCertificate.md +15 -0
- package/dist/okf/types/SSLPolicy.md +15 -0
- package/dist/okf/types/SavedQuery.md +15 -0
- package/dist/okf/types/Schema.md +15 -0
- package/dist/okf/types/Scope.md +15 -0
- package/dist/okf/types/ScopeRBACRoleBinding.md +15 -0
- package/dist/okf/types/SecretCiphertext.md +15 -0
- package/dist/okf/types/SecretManagerSecret.md +15 -0
- package/dist/okf/types/SecretManagerSecretVersion.md +15 -0
- package/dist/okf/types/SecuresourcemanagerInstance.md +15 -0
- package/dist/okf/types/SecuresourcemanagerRepository.md +15 -0
- package/dist/okf/types/SecurityPolicy.md +15 -0
- package/dist/okf/types/ServerTLSPolicy.md +15 -0
- package/dist/okf/types/ServiceAccountKey.md +15 -0
- package/dist/okf/types/ServiceAttachment.md +15 -0
- package/dist/okf/types/ServiceBinding.md +15 -0
- package/dist/okf/types/ServiceConnectionPolicy.md +15 -0
- package/dist/okf/types/ServiceIdentity.md +15 -0
- package/dist/okf/types/ServiceLevelObjective.md +15 -0
- package/dist/okf/types/ServicePerimeter.md +19 -0
- package/dist/okf/types/ServicePerimeterResource.md +15 -0
- package/dist/okf/types/ServiceProjectAttachment.md +15 -0
- package/dist/okf/types/ServiceSplitTraffic.md +15 -0
- package/dist/okf/types/ServicedirectoryEndpoint.md +15 -0
- package/dist/okf/types/ServicedirectoryNamespace.md +15 -0
- package/dist/okf/types/ServicedirectoryService.md +15 -0
- package/dist/okf/types/ServicenetworkingConnection.md +15 -0
- package/dist/okf/types/ServiceusageService.md +15 -0
- package/dist/okf/types/Settings.md +15 -0
- package/dist/okf/types/SharedVPCHostProject.md +15 -0
- package/dist/okf/types/SharedVPCServiceProject.md +15 -0
- package/dist/okf/types/Site.md +15 -0
- package/dist/okf/types/Source.md +15 -0
- package/dist/okf/types/SourcerepoRepository.md +15 -0
- package/dist/okf/types/SpannerBackupSchedule.md +15 -0
- package/dist/okf/types/SpannerDatabase.md +15 -0
- package/dist/okf/types/SpannerInstance.md +15 -0
- package/dist/okf/types/Spoke.md +15 -0
- package/dist/okf/types/StandardAppVersion.md +15 -0
- package/dist/okf/types/StorageBucket.md +21 -0
- package/dist/okf/types/StoragetransferJob.md +15 -0
- package/dist/okf/types/StoredInfoType.md +15 -0
- package/dist/okf/types/Stream.md +15 -0
- package/dist/okf/types/Subnet.md +15 -0
- package/dist/okf/types/Subnetwork.md +15 -0
- package/dist/okf/types/Subscription.md +15 -0
- package/dist/okf/types/SyncAuthorization.md +15 -0
- package/dist/okf/types/TCPRoute.md +15 -0
- package/dist/okf/types/TLSRoute.md +15 -0
- package/dist/okf/types/Tag.md +15 -0
- package/dist/okf/types/TagBinding.md +15 -0
- package/dist/okf/types/TagKey.md +15 -0
- package/dist/okf/types/TagTemplate.md +15 -0
- package/dist/okf/types/TagValue.md +15 -0
- package/dist/okf/types/Target.md +15 -0
- package/dist/okf/types/TargetGRPCProxy.md +15 -0
- package/dist/okf/types/TargetHTTPProxy.md +15 -0
- package/dist/okf/types/TargetHTTPSProxy.md +15 -0
- package/dist/okf/types/TargetInstance.md +15 -0
- package/dist/okf/types/TargetPool.md +15 -0
- package/dist/okf/types/TargetSSLProxy.md +15 -0
- package/dist/okf/types/TargetTCPProxy.md +15 -0
- package/dist/okf/types/TargetVPNGateway.md +15 -0
- package/dist/okf/types/TasksQueue.md +15 -0
- package/dist/okf/types/Taxonomy.md +15 -0
- package/dist/okf/types/Tenant.md +15 -0
- package/dist/okf/types/TenantDefaultSupportedIDPConfig.md +15 -0
- package/dist/okf/types/TenantInboundSAMLConfig.md +15 -0
- package/dist/okf/types/TenantOAuthIDPConfig.md +15 -0
- package/dist/okf/types/Tensorboard.md +15 -0
- package/dist/okf/types/URLMap.md +15 -0
- package/dist/okf/types/UptimeCheckConfig.md +15 -0
- package/dist/okf/types/User.md +15 -0
- package/dist/okf/types/VPCNetwork.md +15 -0
- package/dist/okf/types/VPNGateway.md +15 -0
- package/dist/okf/types/VPNTunnel.md +15 -0
- package/dist/okf/types/VertexaiDataset.md +15 -0
- package/dist/okf/types/VertexaiEndpoint.md +15 -0
- package/dist/okf/types/VertexaiIndex.md +15 -0
- package/dist/okf/types/VirtualMachine.md +15 -0
- package/dist/okf/types/VmwareengineNetwork.md +15 -0
- package/dist/okf/types/VmwareengineNetworkPeering.md +15 -0
- package/dist/okf/types/VpnConnection.md +15 -0
- package/dist/okf/types/WasmPlugin.md +15 -0
- package/dist/okf/types/WebApp.md +15 -0
- package/dist/okf/types/Webhook.md +15 -0
- package/dist/okf/types/WorkerPool.md +15 -0
- package/dist/okf/types/Workflow.md +15 -0
- package/dist/okf/types/WorkflowTemplate.md +15 -0
- package/dist/okf/types/WorkflowsExecution.md +15 -0
- package/dist/okf/types/WorkforcePool.md +15 -0
- package/dist/okf/types/WorkforcePoolProvider.md +15 -0
- package/dist/okf/types/Workload.md +15 -0
- package/dist/okf/types/WorkloadIdentityPool.md +15 -0
- package/dist/okf/types/WorkloadIdentityPoolProvider.md +15 -0
- package/dist/okf/types/Workstation.md +15 -0
- package/dist/okf/types/WorkstationCluster.md +15 -0
- package/dist/okf/types/WorkstationConfig.md +15 -0
- package/dist/okf/types/Zone.md +19 -0
- package/dist/rules/wgc501.ts +73 -0
- package/dist/rules/wgc502.ts +41 -0
- package/dist/rules/wgc503.ts +56 -0
- package/dist/serializer.d.ts +12 -0
- package/dist/serializer.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/composites/index.ts +6 -0
- package/src/composites/landing-zone.test.ts +67 -0
- package/src/composites/landing-zone.ts +173 -0
- package/src/deep-observe-hooks.ts +87 -21
- package/src/deep-observe.test.ts +158 -13
- package/src/deep-observe.ts +143 -142
- package/src/describe-resources.test.ts +46 -1
- package/src/describe-resources.ts +64 -13
- package/src/governance.test.ts +59 -0
- package/src/governance.ts +179 -0
- package/src/index.ts +10 -0
- package/src/lifecycle-integration.test.ts +3 -3
- package/src/lint/audit-catalog.ts +5 -0
- package/src/lint/post-synth/index.ts +6 -0
- package/src/lint/post-synth/wgc501.test.ts +87 -0
- package/src/lint/post-synth/wgc501.ts +73 -0
- package/src/lint/post-synth/wgc502.test.ts +64 -0
- package/src/lint/post-synth/wgc502.ts +41 -0
- package/src/lint/post-synth/wgc503.test.ts +77 -0
- package/src/lint/post-synth/wgc503.ts +56 -0
- package/src/plugin.test.ts +4 -1
- package/src/serializer.ts +6 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { GovernanceFoundation, LocationRestriction, OrganizationAuditConfig } from "./landing-zone.js";
|
|
2
|
+
export type { GovernanceFoundationProps, LocationRestrictionProps, OrganizationAuditConfigProps, } from "./landing-zone.js";
|
|
1
3
|
export { GkeCluster } from "./gke-cluster.js";
|
|
2
4
|
export type { GkeClusterProps } from "./gke-cluster.js";
|
|
3
5
|
export { CloudRunServiceComposite } from "./cloud-run-service.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACpG,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Landing-zone bootstrap composites (#791, epic #787 C1) — the GCP slice.
|
|
3
|
+
*
|
|
4
|
+
* Fixed-shape resources for greenfield creation of the recommended
|
|
5
|
+
* governance foundation through a Config Connector management stack. The
|
|
6
|
+
* evaluability rules (EVL002/004) require composites to declare a fixed set
|
|
7
|
+
* of resources, so these carry the foundation only; arbitrary folder/project
|
|
8
|
+
* trees are authored as config with `landingZoneConfig()` (../governance.ts)
|
|
9
|
+
* and reconciled by the GCP cloud warden, and further folders/projects are
|
|
10
|
+
* declared as ordinary resources.
|
|
11
|
+
*
|
|
12
|
+
* The pieces compose:
|
|
13
|
+
* const lz = GovernanceFoundation({ orgId: "123456789012" });
|
|
14
|
+
* const lr = LocationRestriction({ orgId: "123456789012", locations: ["in:eu-locations"] });
|
|
15
|
+
* const ac = OrganizationAuditConfig({ orgId: "123456789012" });
|
|
16
|
+
* There is no OrganizationRoot analog — GCP organizations come from Cloud
|
|
17
|
+
* Identity / Workspace, not the resource API, so greenfield and brownfield
|
|
18
|
+
* both start from an existing org id.
|
|
19
|
+
*/
|
|
20
|
+
import { IAMAuditConfig, OrgpolicyPolicy, ResourcemanagerFolder } from "../generated/index.js";
|
|
21
|
+
export interface GovernanceFoundationProps {
|
|
22
|
+
/** The organization to hang the foundation off ("123456789012" or "organizations/123456789012"). */
|
|
23
|
+
orgId: string;
|
|
24
|
+
/** Namespace for all resources. */
|
|
25
|
+
namespace?: string;
|
|
26
|
+
}
|
|
27
|
+
export type GovernanceFoundationResult = {
|
|
28
|
+
folderSecurity: InstanceType<typeof ResourcemanagerFolder>;
|
|
29
|
+
folderInfrastructure: InstanceType<typeof ResourcemanagerFolder>;
|
|
30
|
+
folderSandbox: InstanceType<typeof ResourcemanagerFolder>;
|
|
31
|
+
folderWorkloads: InstanceType<typeof ResourcemanagerFolder>;
|
|
32
|
+
policyDisableSaKeyCreation: InstanceType<typeof OrgpolicyPolicy>;
|
|
33
|
+
policySkipDefaultNetwork: InstanceType<typeof OrgpolicyPolicy>;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Security / Infrastructure / Sandbox / Workloads folders with
|
|
37
|
+
* `disable-sa-key-creation` and `skip-default-network` enforced at the
|
|
38
|
+
* organization root — the same baseline `landingZoneConfig()` declares.
|
|
39
|
+
*/
|
|
40
|
+
export declare const GovernanceFoundation: import("@intentius/chant").CompositeDefinition<GovernanceFoundationProps, GovernanceFoundationResult>;
|
|
41
|
+
export interface LocationRestrictionProps {
|
|
42
|
+
/** The organization the policy binds to. */
|
|
43
|
+
orgId: string;
|
|
44
|
+
/** The only locations resources may be created in (value groups like "in:eu-locations" work). */
|
|
45
|
+
locations: string[];
|
|
46
|
+
/** Namespace for all resources. */
|
|
47
|
+
namespace?: string;
|
|
48
|
+
}
|
|
49
|
+
export type LocationRestrictionResult = {
|
|
50
|
+
policyResourceLocations: InstanceType<typeof OrgpolicyPolicy>;
|
|
51
|
+
};
|
|
52
|
+
export declare const LocationRestriction: import("@intentius/chant").CompositeDefinition<LocationRestrictionProps, LocationRestrictionResult>;
|
|
53
|
+
export interface OrganizationAuditConfigProps {
|
|
54
|
+
/** The organization audit logging is enabled on. */
|
|
55
|
+
orgId: string;
|
|
56
|
+
/** Defaults to "allServices". */
|
|
57
|
+
service?: string;
|
|
58
|
+
/** Defaults to ADMIN_READ / DATA_READ / DATA_WRITE. */
|
|
59
|
+
logTypes?: string[];
|
|
60
|
+
/** Namespace for all resources. */
|
|
61
|
+
namespace?: string;
|
|
62
|
+
}
|
|
63
|
+
export type OrganizationAuditConfigResult = {
|
|
64
|
+
auditConfig: InstanceType<typeof IAMAuditConfig>;
|
|
65
|
+
};
|
|
66
|
+
export declare const OrganizationAuditConfig: import("@intentius/chant").CompositeDefinition<OrganizationAuditConfigProps, OrganizationAuditConfigResult>;
|
|
67
|
+
//# sourceMappingURL=landing-zone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landing-zone.d.ts","sourceRoot":"","sources":["../../src/composites/landing-zone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AA2CtF,MAAM,WAAW,yBAAyB;IACxC,oGAAoG;IACpG,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,cAAc,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC3D,oBAAoB,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IACjE,aAAa,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC1D,eAAe,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC5D,0BAA0B,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;IACjE,wBAAwB,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;CAChE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,uGAqBP,CAAC;AAM3B,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,uBAAuB,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,mBAAmB,qGAQP,CAAC;AAM1B,MAAM,WAAW,4BAA4B;IAC3C,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,uBAAuB,6GAkBnC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* GCP deep-observation noise rules (#1209) — for REST payloads, not
|
|
3
|
-
* Connector objects.
|
|
2
|
+
* GCP deep-observation noise rules (#1209, #1210) — for REST payloads, not
|
|
3
|
+
* Config Connector objects.
|
|
4
4
|
*
|
|
5
5
|
* ## What this replaced, and why it had to
|
|
6
6
|
*
|
|
@@ -22,6 +22,16 @@
|
|
|
22
22
|
* provider populates. It is hand-maintained, which is the honest cost: a
|
|
23
23
|
* server-set field nobody has listed reads as drift until it is. That is
|
|
24
24
|
* visible and fixable, where an over-broad rule silently hides real drift.
|
|
25
|
+
*
|
|
26
|
+
* ## The declared side is CNRM, and some of it never reaches GCP
|
|
27
|
+
*
|
|
28
|
+
* The declared tree is a Config Connector spec, and a few of its fields are
|
|
29
|
+
* instructions to the CNRM machinery rather than resource configuration —
|
|
30
|
+
* `projectRef`, `resourceID`, the `cnrm.cloud.google.com/*`
|
|
31
|
+
* annotations. No REST payload will ever echo them (the project is in the
|
|
32
|
+
* URL), so left alone each one reports `absent` drift on every clean apply.
|
|
33
|
+
* They are pruned as declared-side envelope, the mirror image of the
|
|
34
|
+
* live-side server fields.
|
|
25
35
|
*/
|
|
26
36
|
import type { DeepNormalizationHooks } from "@intentius/chant/deep-observation";
|
|
27
37
|
/**
|
|
@@ -33,7 +43,10 @@ import type { DeepNormalizationHooks } from "@intentius/chant/deep-observation";
|
|
|
33
43
|
*/
|
|
34
44
|
export declare const GCP_READ_ONLY_NAMES: ReadonlySet<string>;
|
|
35
45
|
/**
|
|
36
|
-
* Per-kind values GCP fills in when the request omits them
|
|
46
|
+
* Per-kind values GCP fills in when the request omits them, keyed by the
|
|
47
|
+
* index-erased pattern from the tree root (the declared-props shape
|
|
48
|
+
* `./deep-observe.ts` reshapes the live payload into — spec fields at the
|
|
49
|
+
* root, so `storageClass`, not `spec.storageClass`).
|
|
37
50
|
*
|
|
38
51
|
* Unlike {@link GCP_READ_ONLY_NAMES} these are only noise where **source never
|
|
39
52
|
* declared the property** — a default somebody explicitly wrote is a fact worth
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-observe-hooks.d.ts","sourceRoot":"","sources":["../src/deep-observe-hooks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deep-observe-hooks.d.ts","sourceRoot":"","sources":["../src/deep-observe-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EAAY,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAK1F;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAyBlD,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CA2B5F,CAAC;AAsCF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,sBA4BvC,CAAC"}
|
package/dist/deep-observe.d.ts
CHANGED
|
@@ -1,119 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* GCP deep observation (#1087
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* real
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* lexicon and a separate decision"); this row does not revisit that.
|
|
39
|
-
*
|
|
40
|
-
* ## The GCP twist: who is "chant" on this path?
|
|
41
|
-
*
|
|
42
|
-
* Chant #1076's rule treats a field as always-diffable when *any* chant field
|
|
43
|
-
* manager (`chant`, `chant:<stack>` — chant #1075's SSA identity) owns it.
|
|
44
|
-
* That identity is only ever set by the k8s lexicon's typed client, applying
|
|
45
|
-
* with an explicit `--field-manager`. GCP has no equivalent apply activity:
|
|
46
|
-
* every gcp example's own deploy script (e.g.
|
|
47
|
-
* `examples/cockroachdb-multi-region-gke/scripts/deploy.sh`) runs plain
|
|
48
|
-
* `kubectl apply -f dist/*.yaml` — classic client-side apply, no
|
|
49
|
-
* `--server-side`, no `--field-manager`. kubectl's own hardcoded default
|
|
50
|
-
* field manager for that command is `kubectl-client-side-apply`, identical
|
|
51
|
-
* to what a human's `kubectl apply -f their-own-file.yaml` would record.
|
|
52
|
-
* **There is no field-manager name on GCP's real deploy path that
|
|
53
|
-
* distinguishes "chant applied this" from "a person applied this".**
|
|
54
|
-
* (Config Connector's own controller is distinguishable — its reconciler
|
|
55
|
-
* records itself as `cnrm-controller-manager`, per the k8s-config-connector
|
|
56
|
-
* source's own `ControllerManagedFieldManager` constant — just chant isn't,
|
|
57
|
-
* on this path.)
|
|
58
|
-
*
|
|
59
|
-
* That sounds like it breaks question 1 of the three-question rule
|
|
60
|
-
* (`isChantManager`) below. It doesn't, because question 3 already covers
|
|
61
|
-
* it: chant's own kubectl apply always applies the *exact* built manifest, so
|
|
62
|
-
* any field chant's own most recent apply set is, by construction, also in
|
|
63
|
-
* `declaredRoot` (`props`) on the very next read — chant never authors a
|
|
64
|
-
* field it does not also declare. Working through what that means per field:
|
|
65
|
-
*
|
|
66
|
-
* - A field only chant's own applies have ever touched: not recognized as
|
|
67
|
-
* `chantOwned` (its manager is `kubectl-client-side-apply`, not `chant`),
|
|
68
|
-
* but foreign-owned *and* declared → contested → kept diffable anyway.
|
|
69
|
-
* Same outcome as being chant-owned would have been.
|
|
70
|
-
* - A field CNRM's controller sets and chant never declares: foreign-owned,
|
|
71
|
-
* undeclared → pruned. Correct regardless of whether "chant" is recognized.
|
|
72
|
-
* - A field a human sets by hand (`kubectl edit`, or their own `kubectl apply
|
|
73
|
-
* -f`) that chant *does* declare: foreign-owned (manager is `kubectl-edit`
|
|
74
|
-
* or `kubectl-client-side-apply`) and declared → contested → surfaces as
|
|
75
|
-
* drift. This is #1087's acceptance criterion 1.
|
|
76
|
-
*
|
|
77
|
-
* `isGcpChantFieldManager` below still checks the `chant`/`chant:<stack>`
|
|
78
|
-
* family, so a future GCP apply path that *does* route through server-side
|
|
79
|
-
* apply with an explicit chant field manager (matching the k8s lexicon's own
|
|
80
|
-
* path) is recognized with no change needed here. On today's plain-apply
|
|
81
|
-
* path it is inert — proven inert by this module's own test suite (the
|
|
82
|
-
* "managers-specific case") — and the contested-field rule (question 3) is
|
|
83
|
-
* what actually keeps GCP's drift semantics correct without it.
|
|
84
|
-
*
|
|
85
|
-
* ## What's genuinely GCP-specific
|
|
86
|
-
*
|
|
87
|
-
* - No typed operation surface (chant #1177's `operationFor` is a k8s
|
|
88
|
-
* lexicon/typed-client concept, generated from cluster discovery this
|
|
89
|
-
* reader never touches) — `./describe-resources.ts`'s `deriveGVK` stands in.
|
|
90
|
-
* - CNRM's own observed-state annotations (`./deep-observe-hooks.ts`'s
|
|
91
|
-
* `gcpDeepNormalizationHooks`) — bookkeeping the controller writes into
|
|
92
|
-
* `metadata.annotations` for GCP-side properties the CRD schema has no
|
|
93
|
-
* field for. See that module's doc for why the list is narrow.
|
|
94
|
-
*
|
|
95
|
-
* ## Deliberately out of scope
|
|
96
|
-
*
|
|
97
|
-
* `status.conditions` staleness as its own signal — the issue's own
|
|
98
|
-
* "Proposed" section floats this as worth *deciding*, not worth doing here.
|
|
99
|
-
* `status` is pruned outright (matching k8s, and the acceptance criteria),
|
|
100
|
-
* and a CNRM projection lagging real GCP state is a genuine gap, but
|
|
101
|
-
* detecting it means reading the actual GCP API, not the CR — a different
|
|
102
|
-
* read than this contract's "normalize what Kubernetes reports" scope.
|
|
103
|
-
* Flagged, not papered over.
|
|
2
|
+
* GCP deep observation (#1087, re-landed on direct REST by #1209/#1210) — the
|
|
3
|
+
* GCP row of the deep-observe contract (#1014).
|
|
4
|
+
*
|
|
5
|
+
* ## The reader is the applier's transport, pointed at reads
|
|
6
|
+
*
|
|
7
|
+
* chant applies GCP cluster-free over direct REST (#706), and since #1209 it
|
|
8
|
+
* observes the same way: every GET here is built by the same
|
|
9
|
+
* `ResourceMapper.plan().getUrl` the applier writes through (see
|
|
10
|
+
* ./api/read-client.ts), so reader and applier cannot disagree about where a
|
|
11
|
+
* resource lives. `GCP_ENDPOINT_URL` redirects the whole reader at a local
|
|
12
|
+
* floci-gcp; unset means real GCP, exactly as it does for the applier.
|
|
13
|
+
* Coverage is the applier's own dispatch table — a kind with no mapper cannot
|
|
14
|
+
* be applied either, and reports NOT-OBSERVED with `unsupported-kind` (#1089)
|
|
15
|
+
* rather than being dropped.
|
|
16
|
+
*
|
|
17
|
+
* ## Two shapes, one diff
|
|
18
|
+
*
|
|
19
|
+
* The declared side is a CNRM spec as a declarable authors it (`{ metadata:
|
|
20
|
+
* { name }, location, storageClass }`); the REST APIs return their own shapes
|
|
21
|
+
* (`name` is usually the full resource path, a bucket's `iamConfiguration`
|
|
22
|
+
* nests what CNRM flattens, a subscription's `topic` is a path where CNRM
|
|
23
|
+
* writes `topicRef`). Diffed raw, every such field drifts twice: once as
|
|
24
|
+
* `declared -> <absent>` and once as `<undeclared> -> live`.
|
|
25
|
+
* {@link restToCnrmShape} plus the per-kind {@link CNRM_REFINERS} put the live
|
|
26
|
+
* payload into the declared vocabulary before the diff runs — the same move
|
|
27
|
+
* the AWS row makes with its per-type `toModel` (#1207/#1269), and it lives
|
|
28
|
+
* next to the read for the same reason: translation is the price of the
|
|
29
|
+
* richer read, and it does not belong inside the diff.
|
|
30
|
+
*
|
|
31
|
+
* ## Noise is a static table, not an ownership walk
|
|
32
|
+
*
|
|
33
|
+
* The kubectl-era reader pruned by CNRM `metadata.managedFields`. A REST
|
|
34
|
+
* payload never says who wrote a field, so the noise rules are static
|
|
35
|
+
* (./deep-observe-hooks.ts): server-assigned names, chant's own ownership
|
|
36
|
+
* labels, CNRM-only declared fields, and per-kind provider defaults gated on
|
|
37
|
+
* "source never declared it". Core applies the same hooks to both trees.
|
|
104
38
|
*
|
|
105
39
|
* ## The build-path boundary
|
|
106
40
|
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* `
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* `deepNormalizationHooks` is plain data with no such dependency
|
|
114
|
-
* (`./deep-observe-hooks.ts`) and is imported statically from `plugin.ts`,
|
|
115
|
-
* because core normalizes the *declared* tree with it whether or not a
|
|
116
|
-
* cluster read ever happens.
|
|
41
|
+
* `gcpPlugin.ts` reaches this file only via `await import("./deep-observe.js")`
|
|
42
|
+
* inside `observeResourcesDeep` — never statically — so `chant build` never
|
|
43
|
+
* resolves the live transport just to synthesize a template.
|
|
44
|
+
* `deepNormalizationHooks` is plain data (./deep-observe-hooks.ts) and is
|
|
45
|
+
* imported statically from `plugin.ts`, because core normalizes the
|
|
46
|
+
* *declared* tree with it whether or not a live read ever happens.
|
|
117
47
|
*/
|
|
118
48
|
import type { DeepObservationResult } from "@intentius/chant/lexicon";
|
|
119
49
|
import { gcpDeepNormalizationHooks } from "./deep-observe-hooks.js";
|
|
@@ -130,36 +60,35 @@ export interface GcpDeepObserveOptions {
|
|
|
130
60
|
owned?: boolean;
|
|
131
61
|
}
|
|
132
62
|
/**
|
|
133
|
-
* Reshape a GCP REST body into the
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
* again as `location: <undeclared> -> US`.
|
|
141
|
-
*
|
|
142
|
-
* Verified against floci-gcp before this existed: a bucket that matched its
|
|
143
|
-
* declaration exactly reported **7 property drifts**, all of them shape.
|
|
144
|
-
*
|
|
145
|
-
* chant has met this before. #1207 records it for AWS: Cloud Control returns
|
|
146
|
-
* the CloudFormation resource model and lines up for free, while the EC2 API
|
|
147
|
-
* returns the EC2 shape and needs mapping onto the declared shape before the
|
|
148
|
-
* diff can compare. GCP is the EC2 case.
|
|
149
|
-
*
|
|
150
|
-
* The mapping is CNRM's own convention rather than a per-kind table: identity
|
|
151
|
-
* and labels live under `metadata`, everything else is `spec`. That holds for
|
|
152
|
-
* every kind the applier can write, and a per-kind table would be a second
|
|
153
|
-
* place to forget a field.
|
|
63
|
+
* Reshape a GCP REST body into the shape the declared props are written in:
|
|
64
|
+
* identity and labels under `metadata`, everything else at the root — a CNRM
|
|
65
|
+
* spec as a chant declarable authors it (`new StorageBucket({ metadata,
|
|
66
|
+
* location, storageClass })`). Kind-specific vocabulary differences on top of
|
|
67
|
+
* it are {@link CNRM_REFINERS}' job. Verified against floci-gcp: diffed raw, a
|
|
68
|
+
* bucket that matched its declaration exactly reported every field as drift
|
|
69
|
+
* twice, once per shape.
|
|
154
70
|
*/
|
|
155
71
|
export declare function restToCnrmShape(body: Record<string, unknown>): Record<string, unknown>;
|
|
72
|
+
/** What a refiner may need beyond the tree: the read's project, and the REST
|
|
73
|
+
* payload's own full resource name (`projects/p/locations/l/services/s`). */
|
|
74
|
+
interface RefineContext {
|
|
75
|
+
project: string;
|
|
76
|
+
restName?: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A REST payload as a CNRM-shaped property tree, in the declared side's
|
|
80
|
+
* vocabulary. The generic reshape runs first, then the full resource path is
|
|
81
|
+
* shortened to the declared `metadata.name` (`projects/p/topics/t` -> `t`),
|
|
82
|
+
* then the kind's own refiner translates what the two schemas name
|
|
83
|
+
* differently.
|
|
84
|
+
*/
|
|
85
|
+
export declare function toCnrmTree(kind: string, body: Record<string, unknown>, ctx: RefineContext): Record<string, unknown>;
|
|
156
86
|
/**
|
|
157
|
-
* Read the live property tree for each declared entity
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* becomes NOT-OBSERVED for every declared entity rather than an empty result.
|
|
87
|
+
* Read the live property tree for each declared entity over the applier's
|
|
88
|
+
* REST transport, normalized into the declared CNRM shape (see the module
|
|
89
|
+
* doc). A connect failure becomes NOT-OBSERVED for every declared entity
|
|
90
|
+
* rather than an empty result, and a 404 is a real absence the thin read
|
|
91
|
+
* already reports.
|
|
163
92
|
*/
|
|
164
93
|
export declare function observeResourcesDeepGcp(options: GcpDeepObserveOptions): Promise<DeepObservationResult>;
|
|
165
94
|
//# sourceMappingURL=deep-observe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-observe.d.ts","sourceRoot":"","sources":["../src/deep-observe.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deep-observe.d.ts","sourceRoot":"","sources":["../src/deep-observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAajE,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWtF;AAUD;6EAC6E;AAC7E,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA+DD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASnH;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4F5G"}
|
|
@@ -58,14 +58,38 @@ interface GcpRestResponse {
|
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
61
|
+
* The CNRM group/kind for an entity type, resolved through the serializer's
|
|
62
|
+
* own GVK map so the reader and the manifest agree on the kind's casing —
|
|
63
|
+
* `GCP::Pubsub::Topic` is `PubSubTopic` in CNRM and in the applier's mapper
|
|
64
|
+
* table, while a naive `${service}${shortKind}` concatenation would produce
|
|
65
|
+
* `PubsubTopic` and silently miss the mapper for 4 of the 6 appliable kinds.
|
|
64
66
|
*/
|
|
65
67
|
export declare function deriveGVK(entityType: string): {
|
|
66
68
|
group: string;
|
|
67
69
|
kind: string;
|
|
68
70
|
} | null;
|
|
71
|
+
/**
|
|
72
|
+
* The `cnrm.cloud.google.com/project-id` annotations in the built manifest,
|
|
73
|
+
* keyed `kind/name`.
|
|
74
|
+
*
|
|
75
|
+
* The declared entities the observe paths receive are discovery output, and a
|
|
76
|
+
* project-wide `defaultAnnotations({"cnrm.cloud.google.com/project-id": …})`
|
|
77
|
+
* is a separate declarable the serializer merges into each document at
|
|
78
|
+
* synthesis — the entity's own props never see it. The applier resolves its
|
|
79
|
+
* project from the manifest for exactly that reason, so the readers do too:
|
|
80
|
+
* without this, every entity relying on the default annotation reports
|
|
81
|
+
* `no-binding` unless the shell happens to export GOOGLE_CLOUD_PROJECT.
|
|
82
|
+
*/
|
|
83
|
+
export declare function manifestProjectAnnotations(buildOutput: string | undefined): Map<string, string>;
|
|
84
|
+
/**
|
|
85
|
+
* The project a read should target: `GOOGLE_CLOUD_PROJECT` / the entity's own
|
|
86
|
+
* annotation (via `resolveGcpProject`, the applier's rule), then the built
|
|
87
|
+
* manifest's merged annotation. Throws the applier's own error when nothing
|
|
88
|
+
* resolves, so the `no-binding` detail names both knobs.
|
|
89
|
+
*/
|
|
90
|
+
export declare function resolveReadProject(kind: string, name: string, metadata: {
|
|
91
|
+
annotations?: Record<string, string>;
|
|
92
|
+
} | undefined, manifestProjects: Map<string, string>): string;
|
|
69
93
|
/**
|
|
70
94
|
* Status from a REST payload.
|
|
71
95
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../src/describe-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAsC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../src/describe-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAsC,MAAM,0BAA0B,CAAC;AAsBtG;;gCAEgC;AAChC,UAAU,eAAe;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACxF,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB/F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,SAAS,EAC9D,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CAQR;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAY3D;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqH7B"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GCP governance authoring (#791, epic #787 C1): the desired-state config
|
|
3
|
+
* shape the GCP cloud warden reconciles, and `landingZoneConfig()` — the
|
|
4
|
+
* typed authoring layer that emits it.
|
|
5
|
+
*
|
|
6
|
+
* This is deliberately NOT a composite. The evaluability rules (EVL002/004,
|
|
7
|
+
* #916/#952) require composites to declare a fixed set of resources, so a
|
|
8
|
+
* data-driven folder tree walker cannot be one. The split mirrors the AWS
|
|
9
|
+
* slice (lexicons/aws/src/governance.ts): authoring emits config (this
|
|
10
|
+
* module, arbitrary cardinality); resources for greenfield bootstrap are the
|
|
11
|
+
* fixed-shape composites in `composites/landing-zone.ts`; the warden
|
|
12
|
+
* consumes only the config.
|
|
13
|
+
*
|
|
14
|
+
* GCP has no OrganizationRoot analog — organizations are created through
|
|
15
|
+
* Cloud Identity / Workspace, never through the resource API.
|
|
16
|
+
*/
|
|
17
|
+
/** An org-policy definition, keyed by name in `GcpGovernanceConfig.orgPolicies`. */
|
|
18
|
+
export interface OrgPolicyConfig {
|
|
19
|
+
description?: string;
|
|
20
|
+
/** The constraint the policy binds, e.g. "iam.disableServiceAccountKeyCreation". */
|
|
21
|
+
constraint: string;
|
|
22
|
+
/** OrgPolicyPolicy `spec.rules` entries (enforce / values.allowedValues / …). */
|
|
23
|
+
rules: Array<Record<string, unknown>>;
|
|
24
|
+
}
|
|
25
|
+
/** A project declared inside a folder. */
|
|
26
|
+
export interface ProjectConfig {
|
|
27
|
+
name: string;
|
|
28
|
+
/** Defaults to `name`. */
|
|
29
|
+
projectId?: string;
|
|
30
|
+
}
|
|
31
|
+
/** One folder: its guardrails, projects, and child folders, keyed by display name. */
|
|
32
|
+
export interface FolderConfig {
|
|
33
|
+
/** Names of org policies (from `orgPolicies`) attached to this folder. */
|
|
34
|
+
orgPolicies?: string[];
|
|
35
|
+
projects?: ProjectConfig[];
|
|
36
|
+
children?: Record<string, FolderConfig>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The desired-state governance tree for one GCP organization. This is the
|
|
40
|
+
* shape the GCP cloud warden loads as config — the GCP counterpart of
|
|
41
|
+
* `AwsGovernanceConfig`. Cycles map onto the governance verbs (#790): the
|
|
42
|
+
* folder/project tree is `org-unit`, org policies are `policy-guardrail`,
|
|
43
|
+
* audit configuration is `audit-sink`.
|
|
44
|
+
*/
|
|
45
|
+
export interface GcpGovernanceConfig {
|
|
46
|
+
organization: {
|
|
47
|
+
/** Org-policy names enforced at the organization root. */
|
|
48
|
+
orgPolicies?: string[];
|
|
49
|
+
};
|
|
50
|
+
/** Top-level folders under the organization, keyed by display name. */
|
|
51
|
+
folders: Record<string, FolderConfig>;
|
|
52
|
+
/** Org-policy definitions, keyed by the names the tree attaches. */
|
|
53
|
+
orgPolicies: Record<string, OrgPolicyConfig>;
|
|
54
|
+
/** Where audit evidence flows. */
|
|
55
|
+
auditSinks?: {
|
|
56
|
+
auditConfig?: {
|
|
57
|
+
service: string;
|
|
58
|
+
logTypes: string[];
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export declare const DISABLE_SA_KEY_CREATION: OrgPolicyConfig;
|
|
63
|
+
export declare const SKIP_DEFAULT_NETWORK: OrgPolicyConfig;
|
|
64
|
+
/** Allow resource creation only in `locations` (value-group syntax like "in:us-locations" works too). */
|
|
65
|
+
export declare function resourceLocationRestriction(locations: readonly string[]): OrgPolicyConfig;
|
|
66
|
+
/** The audit-log coverage `auditAllServices` declares. */
|
|
67
|
+
export declare const AUDIT_ALL_SERVICES: {
|
|
68
|
+
readonly service: "allServices";
|
|
69
|
+
readonly logTypes: readonly ["ADMIN_READ", "DATA_READ", "DATA_WRITE"];
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* The recommended foundation folder structure. Exported so callers can
|
|
73
|
+
* extend it rather than restate it.
|
|
74
|
+
*/
|
|
75
|
+
export declare const FOUNDATION_FOLDERS: Record<string, FolderConfig>;
|
|
76
|
+
export interface LandingZoneConfigProps {
|
|
77
|
+
/**
|
|
78
|
+
* Start from the recommended foundation: Security / Infrastructure /
|
|
79
|
+
* Sandbox / Workloads folders with `disable-sa-key-creation` and
|
|
80
|
+
* `skip-default-network` enforced at the organization root. Default true;
|
|
81
|
+
* your `folders`/`orgPolicies` merge over it (same-name keys win).
|
|
82
|
+
*/
|
|
83
|
+
foundation?: boolean;
|
|
84
|
+
/** Adds a root resource-location org policy allowing only these locations. */
|
|
85
|
+
allowedLocations?: string[];
|
|
86
|
+
/** Folder tree, merged over the foundation's. Greenfield (full tree) and brownfield (partial subtree) are both just this map. */
|
|
87
|
+
folders?: Record<string, FolderConfig>;
|
|
88
|
+
/** Org-policy definitions, merged over the foundation's. */
|
|
89
|
+
orgPolicies?: Record<string, OrgPolicyConfig>;
|
|
90
|
+
/** Extra org-policy names to enforce at the organization root. */
|
|
91
|
+
rootOrgPolicies?: string[];
|
|
92
|
+
/** Declare organization-wide audit logging (allServices, all three log types). */
|
|
93
|
+
auditAllServices?: boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Author the desired-state tree the GCP cloud warden reconciles. Pure.
|
|
97
|
+
* Throws when the tree attaches an org-policy name with no definition; only
|
|
98
|
+
* policies the tree actually attaches are included in the output.
|
|
99
|
+
*/
|
|
100
|
+
export declare function landingZoneConfig(props?: LandingZoneConfigProps): GcpGovernanceConfig;
|
|
101
|
+
//# sourceMappingURL=governance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE;QACZ,0DAA0D;QAC1D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,kCAAkC;IAClC,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KACvD,CAAC;CACH;AAMD,eAAO,MAAM,uBAAuB,EAAE,eAIrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAIlC,CAAC;AAEF,yGAAyG;AACzG,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAMzF;AAED,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAK3D,CAAC;AAMF,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iIAAiI;IACjI,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,sBAA2B,GAAG,mBAAmB,CAwCzF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ export { DEFAULT_LABELS_MARKER, DEFAULT_ANNOTATIONS_MARKER } from "./default-lab
|
|
|
5
5
|
export { GCP, ProjectId, Region, Zone } from "./pseudo.js";
|
|
6
6
|
export { GcpAnnotations } from "./variables.js";
|
|
7
7
|
export * from "./generated/index.js";
|
|
8
|
-
export { GkeCluster, CloudRunServiceComposite, CloudSqlInstance, GcsBucket, VpcNetwork, PubSubPipeline, CloudFunctionWithTrigger, PrivateService, ManagedCertificate, SecureProject, MemorystoreRedis, MultiRegionVpc, GkeCrdbRegion, } from "./composites/index.js";
|
|
9
|
-
export type { GkeClusterProps, CloudRunServiceProps, CloudSqlInstanceProps, GcsBucketProps, VpcNetworkProps, VpcSubnet, PubSubPipelineProps, CloudFunctionWithTriggerProps, PrivateServiceProps, ManagedCertificateProps, SecureProjectProps, MemorystoreRedisProps, MultiRegionVpcConfig, MultiRegionVpcRegion, GkeCrdbRegionConfig, GkeCrdbRegionNodeConfig, } from "./composites/index.js";
|
|
8
|
+
export { GkeCluster, CloudRunServiceComposite, CloudSqlInstance, GcsBucket, VpcNetwork, PubSubPipeline, CloudFunctionWithTrigger, PrivateService, ManagedCertificate, SecureProject, MemorystoreRedis, MultiRegionVpc, GkeCrdbRegion, GovernanceFoundation, LocationRestriction, OrganizationAuditConfig, } from "./composites/index.js";
|
|
9
|
+
export type { GkeClusterProps, CloudRunServiceProps, CloudSqlInstanceProps, GcsBucketProps, VpcNetworkProps, VpcSubnet, PubSubPipelineProps, CloudFunctionWithTriggerProps, PrivateServiceProps, ManagedCertificateProps, SecureProjectProps, MemorystoreRedisProps, MultiRegionVpcConfig, MultiRegionVpcRegion, GkeCrdbRegionConfig, GkeCrdbRegionNodeConfig, GovernanceFoundationProps, LocationRestrictionProps, OrganizationAuditConfigProps, } from "./composites/index.js";
|
|
10
|
+
export { landingZoneConfig, resourceLocationRestriction, DISABLE_SA_KEY_CREATION, SKIP_DEFAULT_NETWORK, AUDIT_ALL_SERVICES, FOUNDATION_FOLDERS, } from "./governance.js";
|
|
11
|
+
export type { GcpGovernanceConfig, LandingZoneConfigProps, FolderConfig, OrgPolicyConfig, ProjectConfig } from "./governance.js";
|
|
10
12
|
export { StorageRoles, ComputeRoles, ContainerRoles, IAMRoles, SQLRoles, RunRoles, PubSubRoles } from "./actions/index.js";
|
|
11
13
|
export { fetchCRDBundle, getCachePath, clearCache, KCC_VERSION } from "./spec/fetch.js";
|
|
12
14
|
export { parseGcpCRD, gcpServiceName, gcpShortName, gcpTypeName, stripServicePrefix } from "./spec/parse.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,UAAU,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAC7E,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAC3F,gBAAgB,EAAE,cAAc,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,UAAU,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAC7E,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAC3F,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAC/C,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,GACnE,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EAAE,SAAS,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,uBAAuB,EAC5C,yBAAyB,EAAE,wBAAwB,EAAE,4BAA4B,GAClF,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,iBAAiB,EAAE,2BAA2B,EAC9C,uBAAuB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,GACtF,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG9H,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGxH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1G,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrI,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/integrity.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
4
|
+
"manifest.json": "a77b96031861d35097dbe5d31f4e5fd6a709f5992c20e887bdc6b8db3680c145",
|
|
5
5
|
"meta.json": "475f10909854d059a2e2d4fb541c058803422e38b9c64bd4d6858c0623eedb8c",
|
|
6
6
|
"types/index.d.ts": "5433b54c04b57d6fda8f3d81ef92ed0aca87f7e8e5dd3ea92d8de6e62a3ccfab",
|
|
7
7
|
"rules/hardcoded-project.ts": "228631d3159e1ffcce2359c66073d4ae59bb0285f378e46e446f416aec50481c",
|
|
@@ -32,10 +32,13 @@
|
|
|
32
32
|
"rules/wgc401.ts": "287a28258a6987eacf4228df8e57cdc6d5357d5efcb35a732fb01e4b7b8ce797",
|
|
33
33
|
"rules/wgc402.ts": "4dacefea0ead25987ded5f8f5b83d02d2aa957f3816a7d0cc602cc9872257458",
|
|
34
34
|
"rules/wgc403.ts": "156a8af8f8e419d36e740f4fc6f2ed7576a1692e3286e4c9ca6f9e9ccf772965",
|
|
35
|
+
"rules/wgc501.ts": "9684ce2c6aa6585aad72eba06386623cffc7790c8c5e928c53677cb2ea6a0160",
|
|
36
|
+
"rules/wgc502.ts": "d82bea32a0d21c715f59b6ee2343357bd15ffb1a2fc18d4fb5102593595c0d46",
|
|
37
|
+
"rules/wgc503.ts": "bbd1a2ba8189ef07ba921b46b57be507b62bca0342f86c3ec0292ba250406991",
|
|
35
38
|
"skills/chant-gcp.md": "6fd732fb5df2fd6561b4b704379f6779ff4ac12e3069ea4f641d9b222e0c3c81",
|
|
36
39
|
"skills/chant-gcp-security.md": "39a1c97b7425ed43b081257132449d11ce9d12f2d4755fc30d8b14bbc38f60bd",
|
|
37
40
|
"skills/chant-gcp-patterns.md": "a7ef31c1eb2f7244d3f73952c300472ef94c1eb09bd7a1003281b89299b6b704",
|
|
38
41
|
"skills/chant-gcp-gke.md": "be277019da9a722c851e47cd2dfb9c9536668948c3535fb20db7697e934c4e2b"
|
|
39
42
|
},
|
|
40
|
-
"composite": "
|
|
43
|
+
"composite": "09c15cce67a44ee4ad75992a765d524d07f8dc97edc20c166dc3f3c92b5d0506"
|
|
41
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAa,KAAK,QAAQ,EAAkB,MAAM,gCAAgC,CAAC;AAI1F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAa,KAAK,QAAQ,EAAkB,MAAM,gCAAgC,CAAC;AAI1F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CA6BpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AA4BvE,eAAO,MAAM,eAAe,EAAE,cAAc,EA2B3C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WGC501: Org Policy Guardrail Not Enforced (#793, epic #787 C3)
|
|
3
|
+
*
|
|
4
|
+
* Flags OrgPolicyPolicy resources whose rules switch enforcement off or that
|
|
5
|
+
* reset the constraint to its default. A disabled org policy is the GCP
|
|
6
|
+
* shape of a weakened guardrail: the constraint stays visible in the tree
|
|
7
|
+
* while constraining nothing.
|
|
8
|
+
*/
|
|
9
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
10
|
+
import { type GcpManifest } from "./gcp-helpers.js";
|
|
11
|
+
/**
|
|
12
|
+
* OrgPolicyPolicy mirrors the API's own `spec` inside the CRD spec, so rules
|
|
13
|
+
* live at `spec.spec.rules`; accept `spec.rules` too for hand-written manifests.
|
|
14
|
+
*/
|
|
15
|
+
export declare function orgPolicySpec(manifest: GcpManifest): Record<string, unknown>;
|
|
16
|
+
export declare function orgPolicyRules(manifest: GcpManifest): Array<Record<string, unknown>>;
|
|
17
|
+
export declare const wgc501: PostSynthCheck;
|
|
18
|
+
//# sourceMappingURL=wgc501.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgc501.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wgc501.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAErF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI5E;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGpF;AAMD,eAAO,MAAM,MAAM,EAAE,cAyCpB,CAAC"}
|