dbt-platform-helper 15.8.0__py3-none-any.whl → 15.9.0__py3-none-any.whl

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.

Potentially problematic release.


This version of dbt-platform-helper might be problematic. Click here for more details.

@@ -16,8 +16,8 @@ TERRAFORM_ECS_SERVICE_MODULE_SOURCE_OVERRIDE_ENV_VAR = (
16
16
  TERRAFORM_MODULE_SOURCE_TYPE_ENV_VAR = "TERRAFORM_MODULE_SOURCE_TYPE" # "LOCAL", "SSH", "OVERRIDE"
17
17
  IMAGE_TAG_ENV_VAR = "IMAGE_TAG"
18
18
  PLATFORM_HELPER_PACKAGE_NAME = "dbt-platform-helper"
19
- SUPPORTED_TERRAFORM_VERSION = "~> 1.8"
20
- SUPPORTED_AWS_PROVIDER_VERSION = "~> 5"
19
+ SUPPORTED_TERRAFORM_VERSION = "~> 1.11"
20
+ SUPPORTED_AWS_PROVIDER_VERSION = "~> 6"
21
21
  FIRST_UPGRADABLE_PLATFORM_HELPER_MAJOR_VERSION = 13
22
22
 
23
23
  MERGED_TPM_PLATFORM_HELPER_VERSION = 14
@@ -199,7 +199,13 @@ class MaintenancePage:
199
199
  "AllowedIps",
200
200
  next(rule_priority),
201
201
  service_conditions,
202
- [{"Key": "service", "Value": svc.name}],
202
+ [
203
+ {"Key": "application", "Value": app},
204
+ {"Key": "environment", "Value": env},
205
+ {"Key": "reason", "Value": "MaintenancePage"},
206
+ {"Key": "managed-by", "Value": "DBT Platform"},
207
+ {"Key": "service", "Value": svc.name},
208
+ ],
203
209
  )
204
210
  self.load_balancer.create_source_ip_rule(
205
211
  listener_arn,
@@ -208,7 +214,13 @@ class MaintenancePage:
208
214
  "AllowedSourceIps",
209
215
  next(rule_priority),
210
216
  service_conditions,
211
- [{"Key": "service", "Value": svc.name}],
217
+ [
218
+ {"Key": "application", "Value": app},
219
+ {"Key": "environment", "Value": env},
220
+ {"Key": "reason", "Value": "MaintenancePage"},
221
+ {"Key": "managed-by", "Value": "DBT Platform"},
222
+ {"Key": "service", "Value": svc.name},
223
+ ],
212
224
  )
213
225
 
214
226
  self.load_balancer.create_header_rule(
@@ -219,7 +231,13 @@ class MaintenancePage:
219
231
  "BypassIpFilter",
220
232
  next(rule_priority),
221
233
  service_conditions,
222
- [{"Key": "service", "Value": svc.name}],
234
+ [
235
+ {"Key": "application", "Value": app},
236
+ {"Key": "environment", "Value": env},
237
+ {"Key": "reason", "Value": "MaintenancePage"},
238
+ {"Key": "managed-by", "Value": "DBT Platform"},
239
+ {"Key": "service", "Value": svc.name},
240
+ ],
223
241
  )
224
242
 
225
243
  # add to accumilating list of conditions for maintenace page rule
@@ -267,8 +285,12 @@ class MaintenancePage:
267
285
  }
268
286
  ],
269
287
  tags=[
288
+ {"Key": "application", "Value": app},
289
+ {"Key": "environment", "Value": env},
290
+ {"Key": "reason", "Value": "MaintenancePage"},
270
291
  {"Key": "name", "Value": "MaintenancePage"},
271
292
  {"Key": "type", "Value": template},
293
+ {"Key": "managed-by", "Value": "DBT Platform"},
272
294
  ],
273
295
  )
274
296
  except Exception as e:
@@ -54,6 +54,25 @@ class Pipelines:
54
54
  or self.environment_variable_provider.get(PLATFORM_HELPER_VERSION_OVERRIDE_KEY)
55
55
  )
56
56
 
57
+ def _map_environment_pipeline_accounts(self, platform_config) -> list[tuple[str, str]]:
58
+ environment_pipelines_config = platform_config[ENVIRONMENT_PIPELINES_KEY]
59
+ environment_config = platform_config["environments"]
60
+
61
+ account_id_lookup = {
62
+ env["accounts"]["deploy"]["name"]: env["accounts"]["deploy"]["id"]
63
+ for env in environment_config.values()
64
+ if env is not None and "accounts" in env and "deploy" in env["accounts"]
65
+ }
66
+
67
+ accounts = set()
68
+
69
+ for config in environment_pipelines_config.values():
70
+ account = config.get("account")
71
+ deploy_account_id = account_id_lookup.get(account)
72
+ accounts.add((account, deploy_account_id))
73
+
74
+ return list(accounts)
75
+
57
76
  def generate(
58
77
  self,
59
78
  deploy_branch: str,
@@ -107,20 +126,16 @@ class Pipelines:
107
126
  )
108
127
 
109
128
  if has_environment_pipelines:
110
- environment_pipelines = platform_config[ENVIRONMENT_PIPELINES_KEY]
111
- accounts = {
112
- config.get("account")
113
- for config in environment_pipelines.values()
114
- if "account" in config
115
- }
129
+ accounts = self._map_environment_pipeline_accounts(platform_config)
116
130
 
117
- for account in accounts:
131
+ for account_name, account_id in accounts:
118
132
  self._generate_terraform_environment_pipeline_manifest(
119
133
  platform_config["application"],
120
134
  deploy_repository,
121
- account,
135
+ account_name,
122
136
  env_pipeline_module_source,
123
137
  deploy_branch,
138
+ account_id,
124
139
  )
125
140
 
126
141
  if has_codebase_pipelines:
@@ -163,6 +178,7 @@ class Pipelines:
163
178
  aws_account: str,
164
179
  module_source: str,
165
180
  deploy_branch: str,
181
+ aws_account_id: str,
166
182
  ):
167
183
  env_pipeline_template = setup_templates().get_template("environment-pipelines/main.tf")
168
184
 
@@ -175,6 +191,7 @@ class Pipelines:
175
191
  "deploy_branch": deploy_branch,
176
192
  "terraform_version": SUPPORTED_TERRAFORM_VERSION,
177
193
  "aws_provider_version": SUPPORTED_AWS_PROVIDER_VERSION,
194
+ "deploy_account_id": aws_account_id,
178
195
  }
179
196
  )
180
197
 
@@ -54,7 +54,7 @@ class SidecarOverride(BaseModel):
54
54
  class Image(BaseModel):
55
55
  build: Optional[str] = Field(default=None)
56
56
  location: Optional[str] = Field(default=None)
57
- port: int = Field()
57
+ port: Optional[int] = Field(default=None)
58
58
 
59
59
 
60
60
  class VPC(BaseModel):
@@ -30,6 +30,7 @@ class TerraformManifestProvider:
30
30
  service_dir = f"terraform/services/{environment}/{config_object.name}"
31
31
  platform_config = ConfigProvider.apply_environment_defaults(platform_config)
32
32
  account = self._get_account_for_env(environment, platform_config)
33
+ deploy_to_account_id = self._get_account_id_for_account(account, platform_config)
33
34
  state_key_suffix = f"{config_object.name}-{environment}"
34
35
 
35
36
  terraform = {}
@@ -37,7 +38,7 @@ class TerraformManifestProvider:
37
38
 
38
39
  self._add_service_locals(terraform, environment, image_tag)
39
40
 
40
- self._add_provider(terraform, account)
41
+ self._add_provider(terraform, account, deploy_to_account_id)
41
42
  self._add_backend(
42
43
  terraform, platform_config, account, f"tfstate/services/{state_key_suffix}.tfstate"
43
44
  )
@@ -54,11 +55,13 @@ class TerraformManifestProvider:
54
55
  "application": '${local.platform_config["application"]}',
55
56
  "environments": '${local.platform_config["environments"]}',
56
57
  "env_config": '${{for name, config in local.environments: name => merge(lookup(local.environments, "*", {}), config)}}',
57
- "service_config": '${yamldecode(templatefile("./service-config.yml", {COPILOT_ENVIRONMENT_NAME = local.environment, IMAGE_TAG = local.image_tag}))}',
58
+ "service_config": '${yamldecode(templatefile("./service-config.yml", {PLATFORM_ENVIRONMENT_NAME = local.environment, IMAGE_TAG = local.image_tag}))}',
58
59
  "raw_env_config": '${local.platform_config["environments"]}',
59
60
  "combined_env_config": '${{for name, config in local.raw_env_config: name => merge(lookup(local.raw_env_config, "*", {}), config)}}',
60
61
  "service_deployment_mode": '${lookup(local.combined_env_config[local.environment], "service-deployment-mode", "copilot")}',
61
62
  "non_copilot_service_deployment_mode": '${local.service_deployment_mode == "dual-deploy-copilot-traffic" || local.service_deployment_mode == "dual-deploy-platform-traffic" || local.service_deployment_mode == "platform" ? 1 : 0}',
63
+ "custom_iam_policy_path": '${abspath(format("%s/../../../../services/%s/custom-iam-policy/%s.yml", path.module, local.service_config.name, local.environment))}',
64
+ "custom_iam_policy_json": "${fileexists(local.custom_iam_policy_path) ? jsonencode(yamldecode(file(local.custom_iam_policy_path))) : null}",
62
65
  }
63
66
 
64
67
  def _add_service_module(
@@ -76,6 +79,8 @@ class TerraformManifestProvider:
76
79
  "environment": "${local.environment}",
77
80
  "service_config": "${local.service_config}",
78
81
  "env_config": "${local.env_config}",
82
+ "platform_extensions": '${local.platform_config["extensions"]}',
83
+ "custom_iam_policy_json": "${local.custom_iam_policy_json}",
79
84
  }
80
85
  }
81
86
 
@@ -88,12 +93,13 @@ class TerraformManifestProvider:
88
93
  module_source: str,
89
94
  ):
90
95
  default_account = self._get_account_for_env("*", platform_config)
96
+ deploy_to_account_id = self._get_account_id_for_account(default_account, platform_config)
91
97
  state_key_suffix = f"{platform_config['application']}-codebase-pipelines"
92
98
 
93
99
  terraform = {}
94
100
  self._add_header(terraform)
95
101
  self._add_codebase_pipeline_locals(terraform)
96
- self._add_provider(terraform, default_account)
102
+ self._add_provider(terraform, default_account, deploy_to_account_id)
97
103
  self._add_backend(
98
104
  terraform,
99
105
  platform_config,
@@ -142,6 +148,16 @@ class TerraformManifestProvider:
142
148
  )
143
149
  return account
144
150
 
151
+ @staticmethod
152
+ def _get_account_id_for_account(account_name, platform_config):
153
+ environment_config = platform_config["environments"]
154
+ account_id_lookup = {
155
+ env["accounts"]["deploy"]["name"]: env["accounts"]["deploy"]["id"]
156
+ for env in environment_config.values()
157
+ if env is not None and "accounts" in env and "deploy" in env["accounts"]
158
+ }
159
+ return account_id_lookup.get(account_name)
160
+
145
161
  @staticmethod
146
162
  def _add_header(terraform: dict):
147
163
  time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
@@ -160,12 +176,11 @@ class TerraformManifestProvider:
160
176
  }
161
177
 
162
178
  @staticmethod
163
- def _add_provider(terraform: dict, default_account: str):
179
+ def _add_provider(terraform: dict, deploy_to_account: str, deploy_to_account_id: str):
164
180
  terraform["provider"] = {"aws": {}}
165
181
  terraform["provider"]["aws"]["region"] = "eu-west-2"
166
- terraform["provider"]["aws"]["profile"] = default_account
167
- terraform["provider"]["aws"]["alias"] = default_account
168
- terraform["provider"]["aws"]["shared_credentials_files"] = ["~/.aws/config"]
182
+ terraform["provider"]["aws"]["profile"] = deploy_to_account
183
+ terraform["provider"]["aws"]["allowed_account_ids"] = [deploy_to_account_id]
169
184
 
170
185
  @staticmethod
171
186
  def _add_backend(terraform: dict, platform_config: dict, account: str, state_key: str):
@@ -1,3 +1,4 @@
1
+ from collections import OrderedDict
1
2
  from pathlib import Path
2
3
 
3
4
  import yaml
@@ -84,6 +85,32 @@ class YamlFileProvider:
84
85
  if duplicate_keys:
85
86
  raise DuplicateKeysException(",".join(duplicate_keys))
86
87
 
88
+ @staticmethod
89
+ def remove_empty_keys(config: (dict, OrderedDict)) -> (dict, OrderedDict):
90
+ cleaned = config.__class__()
91
+
92
+ for k, v in config.items():
93
+ if isinstance(v, (dict, OrderedDict)):
94
+ v = YamlFileProvider.remove_empty_keys(v)
95
+ if v not in ("", None, [], {}, ()):
96
+ cleaned[k] = v
97
+
98
+ return cleaned
99
+
100
+ @staticmethod
101
+ def find_and_replace(config, string: str, replacement: str):
102
+ if isinstance(config, (dict, OrderedDict)):
103
+ return {
104
+ k: YamlFileProvider.find_and_replace(v, string, replacement)
105
+ for k, v in config.items()
106
+ }
107
+ elif isinstance(config, list):
108
+ return [YamlFileProvider.find_and_replace(item, string, replacement) for item in config]
109
+ elif isinstance(config, str):
110
+ return config.replace(string, replacement)
111
+ else:
112
+ return replacement if config == string else config
113
+
87
114
 
88
115
  def account_number_representer(dumper, data):
89
116
  if data.isdigit():
@@ -10,10 +10,10 @@ locals {
10
10
  provider "aws" {
11
11
  region = "eu-west-2"
12
12
  profile = "{{ aws_account }}"
13
- alias = "{{ aws_account }}"
14
- shared_credentials_files = ["~/.aws/config"]
13
+ allowed_account_ids = ["{{ deploy_account_id }}"]
15
14
  }
16
15
 
16
+
17
17
  terraform {
18
18
  required_version = "{{ terraform_version }}"
19
19
  backend "s3" {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dbt-platform-helper
3
- Version: 15.8.0
3
+ Version: 15.9.0
4
4
  Summary: Set of tools to help transfer applications/services from GOV.UK PaaS to DBT PaaS augmenting AWS Copilot.
5
5
  License: MIT
6
6
  Author: Department for Business and Trade Platform Team
@@ -13,27 +13,17 @@ Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
15
  Requires-Dist: Jinja2 (==3.1.6)
16
- Requires-Dist: PyYAML (==6.0.2)
17
- Requires-Dist: aiohttp (>=3.11.16,<4.0.0)
18
16
  Requires-Dist: boto3 (>=1.35.2,<2.0.0)
19
- Requires-Dist: boto3-stubs (>=1.26.148,<2.0.0)
20
17
  Requires-Dist: botocore (>=1.34.85,<2.0.0)
21
- Requires-Dist: certifi (>=2023.7.22,<2025.0.0)
22
- Requires-Dist: cfn-flip (==1.3.0)
23
- Requires-Dist: cfn-lint (>=1.4.2,<2.0.0)
24
- Requires-Dist: checkov (>=3.2.405,<4.0.0)
18
+ Requires-Dist: cfn-flip (>=1.3.0,<2.0.0)
25
19
  Requires-Dist: click (>=8.1.3,<9.0.0)
26
- Requires-Dist: cryptography (>=44.0.1,<45)
27
20
  Requires-Dist: jinja2-simple-tags (>=0.5.0,<0.6.0)
28
- Requires-Dist: jsonschema (>=4.17.0,<4.18.0)
29
- Requires-Dist: mypy-boto3-codebuild (>=1.26.0.post1,<2.0.0)
30
21
  Requires-Dist: prettytable (>=3.9.0,<4.0.0)
31
22
  Requires-Dist: psycopg2-binary (>=2.9.9,<3.0.0)
23
+ Requires-Dist: pydantic (>=2.11.7,<3.0.0)
32
24
  Requires-Dist: requests (>=2.31.0,<3.0.0)
33
25
  Requires-Dist: schema (==0.7.5)
34
- Requires-Dist: semver (>=3.0.2,<4.0.0)
35
26
  Requires-Dist: slack-sdk (>=3.27.1,<4.0.0)
36
- Requires-Dist: tomlkit (>=0.12.2,<0.14.0)
37
27
  Requires-Dist: yamllint (>=1.35.1,<2.0.0)
38
28
  Description-Content-Type: text/markdown
39
29
 
@@ -15,7 +15,7 @@ dbt_platform_helper/commands/pipeline.py,sha256=PGpDDmyReVa4gdpXDwJEsHN51f5MgTIb
15
15
  dbt_platform_helper/commands/secrets.py,sha256=AMwLCi7uxuMMfhDfGD8OcuIYMzU8q2VQXWxaiuztvzA,3296
16
16
  dbt_platform_helper/commands/service.py,sha256=Lqo4vmNHxa0ofTWIYEpwKoyT1iqsTCkMjz3HeqSE4og,1702
17
17
  dbt_platform_helper/commands/version.py,sha256=2GltWeeN7cqhVj9FhYWSbXSQSyNILHVNOeANGWtAllY,1097
18
- dbt_platform_helper/constants.py,sha256=q_g7kJrOGsXql2GHa3yU9Sx-qQmUqg2oi8SWpxGaX-o,1857
18
+ dbt_platform_helper/constants.py,sha256=vIe6SyesBDtkjgRieT-Ui1ZLS_4c1YoqN7JE9qXt1uQ,1858
19
19
  dbt_platform_helper/default-extensions.yml,sha256=SU1ZitskbuEBpvE7efc3s56eAUF11j70brhj_XrNMMo,493
20
20
  dbt_platform_helper/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  dbt_platform_helper/domain/codebase.py,sha256=2hJoBiDB2ciOudT_YUR44XV0ZQPWUJld_UIuds4XOt8,12481
@@ -24,16 +24,16 @@ dbt_platform_helper/domain/config.py,sha256=Iyf-lV4YDD6BHH-RRaTvp-7qPS8BYeHM_SkS
24
24
  dbt_platform_helper/domain/copilot.py,sha256=g8W2LaskyhOvtNoCoNbwucGTrfdAzj-AJ0J98tgLbhA,15138
25
25
  dbt_platform_helper/domain/copilot_environment.py,sha256=fL3XJCOfO0BJRCrCoBPFCcshrQoX1FeSYNTziOEaH4A,9093
26
26
  dbt_platform_helper/domain/database_copy.py,sha256=4A84xqj3c_VjYlXb81B8Kt8us8IcCQVVF6GyPAAmwyo,9638
27
- dbt_platform_helper/domain/maintenance_page.py,sha256=0_dgM5uZvjVNBKcqScspjutinMh-7Hdm7jBEgUPujrk,14529
27
+ dbt_platform_helper/domain/maintenance_page.py,sha256=pTY_GXAMzqowdLCXM7BmsbsUeZ8oPO4mI8pUae66cjU,15786
28
28
  dbt_platform_helper/domain/notify.py,sha256=_BWj5znDWtrSdJ5xzDBgnao4ukliBA5wiUZGobIDyiI,1894
29
- dbt_platform_helper/domain/pipelines.py,sha256=rL_NArksFgmpsIUL3K_xVmTWt10tmlw5eCP140j96bc,7832
29
+ dbt_platform_helper/domain/pipelines.py,sha256=NrH9dl5Pzdds9TdWJmPZmgyBhHfcaN6byouBWI0W67s,8565
30
30
  dbt_platform_helper/domain/plans.py,sha256=X5-jKGiJDVWn0CRH1k5aV74fTH0E41HqFQcCo5kB4hI,1160
31
31
  dbt_platform_helper/domain/service.py,sha256=b1wtvINDhyMmauTb4Ed2wyyGQXsKPfB-SIcewjXiCwA,6771
32
32
  dbt_platform_helper/domain/terraform_environment.py,sha256=g9PSuZeVXgboGNDXU7OGMiRATd67NU8S92HUGri1fbo,2471
33
33
  dbt_platform_helper/domain/versioning.py,sha256=pIL8VPAJHqX5kJBp3QIxII5vmUo4aIYW_U9u_KxUJd0,5494
34
34
  dbt_platform_helper/entities/platform_config_schema.py,sha256=IUwjxQ19SotiAHLe5K9lpftaw4tJmMk-U6PQbe-HzEU,27551
35
35
  dbt_platform_helper/entities/semantic_version.py,sha256=VgQ6V6OgSaleuVmMB8Kl_yLoakXl2auapJTDbK00mfc,2679
36
- dbt_platform_helper/entities/service.py,sha256=9EkcSBVGxiLunyd_WneanW0_dbwX7QcF_YWjBvR_k_4,4147
36
+ dbt_platform_helper/entities/service.py,sha256=GExA0gOiKIcY3WX4vx_j9VSv6BAeRm9-tIUbs7YkyFI,4169
37
37
  dbt_platform_helper/jinja2_tags.py,sha256=hKG6RS3zlxJHQ-Op9r2U2-MhWp4s3lZir4Ihe24ApJ0,540
38
38
  dbt_platform_helper/platform_exception.py,sha256=HGfCYRD20REsynqMKmyZndTfdkMd5dLSIEB2qGGCeP8,244
39
39
  dbt_platform_helper/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -61,12 +61,12 @@ dbt_platform_helper/providers/schema_migrations/schema_v0_to_v1_migration.py,sha
61
61
  dbt_platform_helper/providers/schema_migrator.py,sha256=qk14k3hMz1av9VrxHyJw2OKJLQnCBv_ugOoxZr3tFXQ,2854
62
62
  dbt_platform_helper/providers/secrets.py,sha256=mOTIrcRRxxV2tS40U8onAjWekfPS3NzCvvyCMjr_yrU,5327
63
63
  dbt_platform_helper/providers/slack_channel_notifier.py,sha256=G8etEcaBQSNHg8BnyC5UPv6l3vUB14cYWjcaAQksaEk,2135
64
- dbt_platform_helper/providers/terraform_manifest.py,sha256=_q8Lk_9TcgD0cMg2_kpeWxYcf00kCgT00FcHg8-zG4Y,13135
64
+ dbt_platform_helper/providers/terraform_manifest.py,sha256=SEdlylBIpe0qsQFEG0ttJeoE9BthkzJ7VGQOfgOoC3g,14274
65
65
  dbt_platform_helper/providers/validation.py,sha256=i2g-Mrd4hy_fGIfGa6ZQy4vTJ40OM44Fe_XpEifGWxs,126
66
66
  dbt_platform_helper/providers/version.py,sha256=QNGrV5nyJi0JysXowYUU4OrXGDn27WmFezlV8benpdY,4251
67
67
  dbt_platform_helper/providers/version_status.py,sha256=qafnhZrEc9k1cvXJpvJhkGj6WtkzcsoQhqS_Y6JXy48,929
68
68
  dbt_platform_helper/providers/vpc.py,sha256=KdgwyHv2RwNpq16Sa2FtWm7DMJlTNmsPbXkbMNMYiQo,4082
69
- dbt_platform_helper/providers/yaml_file.py,sha256=LZ8eCPDQRr1wlck13My5hQa0eE2OVhSomm-pOIuZ9h0,2881
69
+ dbt_platform_helper/providers/yaml_file.py,sha256=pgSgC20_Se43HfMbpkTGyn4MkXkuA963t9djxxBoJnI,3902
70
70
  dbt_platform_helper/templates/.copilot/config.yml,sha256=J_bA9sCtBdCPBRImpCBRnYvhQd4vpLYIXIU-lq9vbkA,158
71
71
  dbt_platform_helper/templates/.copilot/image_build_run.sh,sha256=adYucYXEB-kAgZNjTQo0T6EIAY8sh_xCEvVhWKKQ8mw,164
72
72
  dbt_platform_helper/templates/.copilot/phases/build.sh,sha256=umKXePcRvx4XyrRY0fAWIyYFtNjqBI2L8vIJk-V7C60,121
@@ -86,7 +86,7 @@ dbt_platform_helper/templates/create-codebuild-role.json,sha256=THJgIKi8rWwDzhg5
86
86
  dbt_platform_helper/templates/custom-codebuild-role-policy.json,sha256=8xyCofilPhV1Yjt3OnQLcI2kZ35mk2c07GcqYrKxuoI,1180
87
87
  dbt_platform_helper/templates/env/manifest.yml,sha256=VCEj_y3jdfnPYi6gmyrwiEqzHYjpaJDANbvswmkiLA0,802
88
88
  dbt_platform_helper/templates/env/terraform-overrides/cfn.patches.yml,sha256=cFlg69fvi9kzpz13ZAeY1asseZ6TuUex-6s76jG3oL4,259
89
- dbt_platform_helper/templates/environment-pipelines/main.tf,sha256=yrbxIhHtWOm7gEHW4Jk2K4i7uCbGQxySu_2D2WFUSbk,1825
89
+ dbt_platform_helper/templates/environment-pipelines/main.tf,sha256=iQQAHz_rE6ksgF8Yb_wXrVxgu8H0tenB8nsl43-RmOc,1787
90
90
  dbt_platform_helper/templates/svc/maintenance_pages/default.html,sha256=OTZ-qwwSXu7PFbsgp4kppdm1lsg_iHK7FCFqhPnvrEs,741
91
91
  dbt_platform_helper/templates/svc/maintenance_pages/dmas-migration.html,sha256=qvI6tHuI0UQbMBCuvPgK1a_zLANB6w7KVo9N5d8r-i0,829
92
92
  dbt_platform_helper/templates/svc/maintenance_pages/migration.html,sha256=GiQsOiuaMFb7jG5_wU3V7BMcByHBl9fOBgrNf8quYlw,783
@@ -106,8 +106,8 @@ platform_helper.py,sha256=LP9o5_1H9-FKbBa85FqW07QFPn6STg6D4gM2-QHaaD4,2048
106
106
  terraform/elasticache-redis/plans.yml,sha256=efJfkLuLC_5TwhLb9DalKHOuZFO79y6iei6Dg_tqKjI,1831
107
107
  terraform/opensearch/plans.yml,sha256=lQbUSNMGfvUeDMcGx8mSwzGQhMJU3EZ4J4tPzPKaq6c,1471
108
108
  terraform/postgres/plans.yml,sha256=plwCklW1VB_tNJFyUduRMZx9UANgiWH_7TGLWUaUEus,2553
109
- dbt_platform_helper-15.8.0.dist-info/LICENSE,sha256=dP79lN73--7LMApnankTGLqDbImXg8iYFqWgnExGkGk,1090
110
- dbt_platform_helper-15.8.0.dist-info/METADATA,sha256=SC2tYGy-f0qweGjG1PxdtYALvhi-FnzEJB6IQ2vZIr8,3163
111
- dbt_platform_helper-15.8.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
112
- dbt_platform_helper-15.8.0.dist-info/entry_points.txt,sha256=QhbY8F434A-onsg0-FsdMd2U6HKh6Q7yCFFZrGUh5-M,67
113
- dbt_platform_helper-15.8.0.dist-info/RECORD,,
109
+ dbt_platform_helper-15.9.0.dist-info/LICENSE,sha256=dP79lN73--7LMApnankTGLqDbImXg8iYFqWgnExGkGk,1090
110
+ dbt_platform_helper-15.9.0.dist-info/METADATA,sha256=nM4pw5jMBBu4AIRNHM_QXTqBJJupwtz8P6MlzWE9p3w,2732
111
+ dbt_platform_helper-15.9.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
112
+ dbt_platform_helper-15.9.0.dist-info/entry_points.txt,sha256=QhbY8F434A-onsg0-FsdMd2U6HKh6Q7yCFFZrGUh5-M,67
113
+ dbt_platform_helper-15.9.0.dist-info/RECORD,,