dbt-platform-helper 12.5.0__py3-none-any.whl → 12.6.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.
Files changed (40) hide show
  1. dbt_platform_helper/COMMANDS.md +39 -38
  2. dbt_platform_helper/commands/codebase.py +5 -8
  3. dbt_platform_helper/commands/conduit.py +2 -2
  4. dbt_platform_helper/commands/config.py +1 -1
  5. dbt_platform_helper/commands/copilot.py +4 -2
  6. dbt_platform_helper/commands/environment.py +40 -24
  7. dbt_platform_helper/commands/pipeline.py +6 -171
  8. dbt_platform_helper/constants.py +1 -0
  9. dbt_platform_helper/domain/codebase.py +20 -23
  10. dbt_platform_helper/domain/conduit.py +10 -12
  11. dbt_platform_helper/domain/config_validator.py +40 -7
  12. dbt_platform_helper/domain/copilot_environment.py +135 -131
  13. dbt_platform_helper/domain/database_copy.py +45 -42
  14. dbt_platform_helper/domain/maintenance_page.py +220 -183
  15. dbt_platform_helper/domain/pipelines.py +212 -0
  16. dbt_platform_helper/domain/terraform_environment.py +68 -35
  17. dbt_platform_helper/domain/test_platform_terraform_manifest_generator.py +100 -0
  18. dbt_platform_helper/providers/cache.py +1 -2
  19. dbt_platform_helper/providers/cloudformation.py +12 -1
  20. dbt_platform_helper/providers/config.py +21 -13
  21. dbt_platform_helper/providers/copilot.py +2 -0
  22. dbt_platform_helper/providers/files.py +26 -0
  23. dbt_platform_helper/providers/io.py +31 -0
  24. dbt_platform_helper/providers/load_balancers.py +29 -3
  25. dbt_platform_helper/providers/platform_config_schema.py +10 -7
  26. dbt_platform_helper/providers/vpc.py +106 -0
  27. dbt_platform_helper/providers/yaml_file.py +3 -14
  28. dbt_platform_helper/templates/COMMANDS.md.jinja +5 -3
  29. dbt_platform_helper/templates/pipelines/codebase/overrides/package-lock.json +819 -623
  30. dbt_platform_helper/utils/application.py +32 -34
  31. dbt_platform_helper/utils/aws.py +0 -50
  32. dbt_platform_helper/utils/files.py +8 -23
  33. dbt_platform_helper/utils/messages.py +2 -3
  34. dbt_platform_helper/utils/platform_config.py +0 -7
  35. dbt_platform_helper/utils/versioning.py +12 -0
  36. {dbt_platform_helper-12.5.0.dist-info → dbt_platform_helper-12.6.0.dist-info}/METADATA +2 -2
  37. {dbt_platform_helper-12.5.0.dist-info → dbt_platform_helper-12.6.0.dist-info}/RECORD +40 -35
  38. {dbt_platform_helper-12.5.0.dist-info → dbt_platform_helper-12.6.0.dist-info}/WHEEL +1 -1
  39. {dbt_platform_helper-12.5.0.dist-info → dbt_platform_helper-12.6.0.dist-info}/LICENSE +0 -0
  40. {dbt_platform_helper-12.5.0.dist-info → dbt_platform_helper-12.6.0.dist-info}/entry_points.txt +0 -0
@@ -1,31 +1,28 @@
1
1
  import json
2
2
  import os
3
3
  import re
4
+ from dataclasses import dataclass
5
+ from dataclasses import field
4
6
  from pathlib import Path
5
7
  from typing import Dict
6
8
 
7
9
  import boto3
8
- import yaml
9
- from boto3 import Session
10
- from yaml.parser import ParserError
11
10
 
11
+ from dbt_platform_helper.constants import PLATFORM_CONFIG_FILE
12
12
  from dbt_platform_helper.platform_exception import PlatformException
13
13
  from dbt_platform_helper.utils.aws import get_aws_session_or_abort
14
14
  from dbt_platform_helper.utils.aws import get_profile_name_from_account_id
15
15
  from dbt_platform_helper.utils.aws import get_ssm_secrets
16
16
  from dbt_platform_helper.utils.messages import abort_with_error
17
+ from dbt_platform_helper.utils.platform_config import load_unvalidated_config_file
17
18
 
18
19
 
20
+ @dataclass
19
21
  class Environment:
20
22
  name: str
21
23
  account_id: str
22
24
  sessions: Dict[str, boto3.Session]
23
25
 
24
- def __init__(self, name: str, account_id: str, sessions: Dict[str, boto3.Session]):
25
- self.name = name
26
- self.account_id = account_id
27
- self.sessions = sessions
28
-
29
26
  @property
30
27
  def session(self):
31
28
  if self.account_id not in self.sessions:
@@ -36,24 +33,17 @@ class Environment:
36
33
  return self.sessions[self.account_id]
37
34
 
38
35
 
36
+ @dataclass
39
37
  class Service:
40
38
  name: str
41
39
  kind: str
42
40
 
43
- def __init__(self, name: str, kind: str):
44
- self.name = name
45
- self.kind = kind
46
-
47
41
 
42
+ @dataclass
48
43
  class Application:
49
44
  name: str
50
- environments: Dict[str, Environment]
51
- services: Dict[str, Service]
52
-
53
- def __init__(self, name: str):
54
- self.name = name
55
- self.environments = {}
56
- self.services = {}
45
+ environments: Dict[str, Environment] = field(default_factory=dict)
46
+ services: Dict[str, Service] = field(default_factory=dict)
57
47
 
58
48
  def __str__(self):
59
49
  output = f"Application {self.name} with"
@@ -69,7 +59,7 @@ class Application:
69
59
  return str(self) == str(other)
70
60
 
71
61
 
72
- def load_application(app: str = None, default_session: Session = None) -> Application:
62
+ def load_application(app=None, default_session=None) -> Application:
73
63
  application = Application(app if app else get_application_name())
74
64
  current_session = default_session if default_session else get_aws_session_or_abort()
75
65
 
@@ -81,7 +71,7 @@ def load_application(app: str = None, default_session: Session = None) -> Applic
81
71
  WithDecryption=False,
82
72
  )
83
73
  except ssm_client.exceptions.ParameterNotFound:
84
- raise ApplicationNotFoundException(app)
74
+ raise ApplicationNotFoundException(application.name)
85
75
 
86
76
  path = f"/copilot/applications/{application.name}/environments"
87
77
  secrets = get_ssm_secrets(app, None, current_session, path)
@@ -115,27 +105,35 @@ def load_application(app: str = None, default_session: Session = None) -> Applic
115
105
  Recursive=False,
116
106
  WithDecryption=False,
117
107
  )
108
+ results = response["Parameters"]
109
+ while "NextToken" in response:
110
+ response = ssm_client.get_parameters_by_path(
111
+ Path=f"/copilot/applications/{application.name}/components",
112
+ Recursive=False,
113
+ WithDecryption=False,
114
+ NextToken=response["NextToken"],
115
+ )
116
+ results.extend(response["Parameters"])
118
117
 
119
118
  application.services = {
120
119
  svc["name"]: Service(svc["name"], svc["type"])
121
- for svc in [json.loads(parameter["Value"]) for parameter in response["Parameters"]]
120
+ for svc in [json.loads(parameter["Value"]) for parameter in results]
122
121
  }
123
122
 
124
123
  return application
125
124
 
126
125
 
127
- def get_application_name():
128
- app_name = None
129
- try:
130
- app_config = yaml.safe_load(Path("copilot/.workspace").read_text())
131
- app_name = app_config["application"]
132
- except (FileNotFoundError, ParserError):
133
- pass
134
-
135
- if app_name is None:
136
- abort_with_error("Cannot get application name. No copilot/.workspace file found")
137
-
138
- return app_name
126
+ def get_application_name(abort=abort_with_error):
127
+ if Path(PLATFORM_CONFIG_FILE).exists():
128
+ try:
129
+ app_config = load_unvalidated_config_file()
130
+ return app_config["application"]
131
+ except KeyError:
132
+ abort(
133
+ f"Cannot get application name. No 'application' key can be found in {PLATFORM_CONFIG_FILE}"
134
+ )
135
+ else:
136
+ abort(f"Cannot get application name. {PLATFORM_CONFIG_FILE} is missing.")
139
137
 
140
138
 
141
139
  class ApplicationException(PlatformException):
@@ -15,7 +15,6 @@ from boto3 import Session
15
15
 
16
16
  from dbt_platform_helper.constants import REFRESH_TOKEN_MESSAGE
17
17
  from dbt_platform_helper.platform_exception import PlatformException
18
- from dbt_platform_helper.providers.aws import AWSException
19
18
  from dbt_platform_helper.providers.aws import CopilotCodebaseNotFoundException
20
19
  from dbt_platform_helper.providers.aws import ImageNotFoundException
21
20
  from dbt_platform_helper.providers.aws import LogGroupNotFoundException
@@ -377,55 +376,6 @@ def get_connection_string(
377
376
  return f"postgres://{conn['username']}:{conn['password']}@{conn['host']}:{conn['port']}/{conn['dbname']}"
378
377
 
379
378
 
380
- class Vpc:
381
- def __init__(self, subnets: list[str], security_groups: list[str]):
382
- self.subnets = subnets
383
- self.security_groups = security_groups
384
-
385
-
386
- def get_vpc_info_by_name(session: Session, app: str, env: str, vpc_name: str) -> Vpc:
387
- ec2_client = session.client("ec2")
388
- vpc_response = ec2_client.describe_vpcs(Filters=[{"Name": "tag:Name", "Values": [vpc_name]}])
389
-
390
- matching_vpcs = vpc_response.get("Vpcs", [])
391
-
392
- if not matching_vpcs:
393
- raise AWSException(f"VPC not found for name '{vpc_name}'")
394
-
395
- vpc_id = vpc_response["Vpcs"][0].get("VpcId")
396
-
397
- if not vpc_id:
398
- raise AWSException(f"VPC id not present in vpc '{vpc_name}'")
399
-
400
- ec2_resource = session.resource("ec2")
401
- vpc = ec2_resource.Vpc(vpc_id)
402
-
403
- route_tables = ec2_client.describe_route_tables(
404
- Filters=[{"Name": "vpc-id", "Values": [vpc_id]}]
405
- )["RouteTables"]
406
-
407
- subnets = []
408
- for route_table in route_tables:
409
- private_routes = [route for route in route_table["Routes"] if "NatGatewayId" in route]
410
- if not private_routes:
411
- continue
412
- for association in route_table["Associations"]:
413
- if "SubnetId" in association:
414
- subnet_id = association["SubnetId"]
415
- subnets.append(subnet_id)
416
-
417
- if not subnets:
418
- raise AWSException(f"No private subnets found in vpc '{vpc_name}'")
419
-
420
- tag_value = {"Key": "Name", "Value": f"copilot-{app}-{env}-env"}
421
- sec_groups = [sg.id for sg in vpc.security_groups.all() if sg.tags and tag_value in sg.tags]
422
-
423
- if not sec_groups:
424
- raise AWSException(f"No matching security groups found in vpc '{vpc_name}'")
425
-
426
- return Vpc(subnets, sec_groups)
427
-
428
-
429
379
  def start_build_extraction(codebuild_client, build_options):
430
380
  response = codebuild_client.start_build(**build_options)
431
381
  return response["build"]["arn"]
@@ -1,34 +1,17 @@
1
- from os import makedirs
2
- from pathlib import Path
3
-
4
1
  import click
5
2
  import yaml
6
3
  from jinja2 import Environment
7
4
  from jinja2 import FileSystemLoader
8
5
 
6
+ from dbt_platform_helper.providers.files import FileProvider
7
+
9
8
 
10
9
  def to_yaml(value):
11
10
  return yaml.dump(value, sort_keys=False)
12
11
 
13
12
 
14
- def mkfile(base_path, file_path, contents, overwrite=False):
15
- file_path = Path(file_path)
16
- file = Path(base_path).joinpath(file_path)
17
- file_exists = file.exists()
18
-
19
- if not file_path.parent.exists():
20
- makedirs(file_path.parent)
21
-
22
- if file_exists and not overwrite:
23
- return f"File {file_path} exists; doing nothing"
24
-
25
- action = "overwritten" if file_exists and overwrite else "created"
26
-
27
- file.write_text(contents)
28
-
29
- return f"File {file_path} {action}"
30
-
31
-
13
+ # TODO - extract file provider functionality from this - and figure out what it actually does!
14
+ # Move to the new file provider - or potentially copilot?
32
15
  def generate_override_files(base_path, file_path, output_dir):
33
16
  def generate_files_for_dir(pattern):
34
17
  for file in file_path.glob(pattern):
@@ -36,7 +19,7 @@ def generate_override_files(base_path, file_path, output_dir):
36
19
  contents = file.read_text()
37
20
  file_name = str(file).removeprefix(f"{file_path}/")
38
21
  click.echo(
39
- mkfile(
22
+ FileProvider.mkfile(
40
23
  base_path,
41
24
  output_dir / file_name,
42
25
  contents,
@@ -61,7 +44,9 @@ def generate_override_files_from_template(base_path, overrides_path, output_dir,
61
44
  if file.is_file():
62
45
  file_name = str(file).removeprefix(f"{overrides_path}/")
63
46
  contents = templates.get_template(str(file_name)).render(data)
64
- message = mkfile(base_path, output_dir / file_name, contents, overwrite=True)
47
+ message = FileProvider.mkfile(
48
+ base_path, output_dir / file_name, contents, overwrite=True
49
+ )
65
50
  click.echo(message)
66
51
 
67
52
  generate_files_for_dir("*")
@@ -1,6 +1,5 @@
1
- import click
1
+ from dbt_platform_helper.providers.io import ClickIOProvider
2
2
 
3
3
 
4
4
  def abort_with_error(message):
5
- click.secho(f"Error: {message}", err=True, fg="red")
6
- exit(1)
5
+ ClickIOProvider().abort_with_error(message)
@@ -18,10 +18,3 @@ def load_unvalidated_config_file():
18
18
  return yaml.safe_load(file_contents)
19
19
  except yaml.parser.ParserError:
20
20
  return {}
21
-
22
-
23
- def get_environment_pipeline_names():
24
- pipelines_config = load_unvalidated_config_file().get("environment_pipelines")
25
- if pipelines_config:
26
- return pipelines_config.keys()
27
- return {}
@@ -11,6 +11,7 @@ from typing import Union
11
11
  import click
12
12
  import requests
13
13
 
14
+ from dbt_platform_helper.constants import DEFAULT_TERRAFORM_PLATFORM_MODULES_VERSION
14
15
  from dbt_platform_helper.constants import PLATFORM_CONFIG_FILE
15
16
  from dbt_platform_helper.constants import PLATFORM_HELPER_VERSION_FILE
16
17
  from dbt_platform_helper.providers.validation import IncompatibleMajorVersionException
@@ -297,3 +298,14 @@ def get_required_platform_helper_version(
297
298
  raise SystemExit(1)
298
299
 
299
300
  return out
301
+
302
+
303
+ def get_required_terraform_platform_modules_version(
304
+ cli_terraform_platform_modules_version, platform_config_terraform_modules_default_version
305
+ ):
306
+ version_preference_order = [
307
+ cli_terraform_platform_modules_version,
308
+ platform_config_terraform_modules_default_version,
309
+ DEFAULT_TERRAFORM_PLATFORM_MODULES_VERSION,
310
+ ]
311
+ return [version for version in version_preference_order if version][0]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dbt-platform-helper
3
- Version: 12.5.0
3
+ Version: 12.6.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,7 +13,7 @@ Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
- Requires-Dist: Jinja2 (==3.1.4)
16
+ Requires-Dist: Jinja2 (==3.1.5)
17
17
  Requires-Dist: PyYAML (==6.0.1)
18
18
  Requires-Dist: aiohttp (>=3.8.4,<4.0.0)
19
19
  Requires-Dist: boto3 (>=1.28.24,<2.0.0)
@@ -1,53 +1,58 @@
1
- dbt_platform_helper/COMMANDS.md,sha256=zLOCEb31pbTRp9Q6QRsSDwdwH5imnCUw3Ey87igqoBQ,22028
1
+ dbt_platform_helper/COMMANDS.md,sha256=Sx99mmayAWF7RS9QaHDGt3eVyB2OcyvloaUcNyiiigU,22422
2
2
  dbt_platform_helper/README.md,sha256=B0qN2_u_ASqqgkGDWY2iwNGZt_9tUgMb9XqtaTuzYjw,1530
3
3
  dbt_platform_helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  dbt_platform_helper/addon-plans.yml,sha256=O46a_ODsGG9KXmQY_1XbSGqrpSaHSLDe-SdROzHx8Go,4545
5
5
  dbt_platform_helper/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  dbt_platform_helper/commands/application.py,sha256=eVwCaYuwBlk0zx0xfA6fW7b-S1pl8gkyT1lHKeeh2R0,10147
7
- dbt_platform_helper/commands/codebase.py,sha256=KB8irKyFtb6pKn5cQ0MmTywGW7Vd8SSbWjT2mRnh3JA,2270
8
- dbt_platform_helper/commands/conduit.py,sha256=KqRWiirl5Xl7qcJXOAsirbTLlV1XquOjddsopuj0Kp4,2272
9
- dbt_platform_helper/commands/config.py,sha256=vIJh1piAqxRgxr4t68okPLfo-inkPiSoRNUFGPQBChg,12129
10
- dbt_platform_helper/commands/copilot.py,sha256=5UqY1LOCjfsBffpVRa2mHPs8Tc7SmnjcQHtS0XMn8-c,13562
7
+ dbt_platform_helper/commands/codebase.py,sha256=Ox6Cr99sf7AVqydbArOiPNvJxUEXnioRbXdbAeCm5cw,2279
8
+ dbt_platform_helper/commands/conduit.py,sha256=QYMOYyCxFPzj_NJaXs3flIL7sHjOv75uAqPpjgh-EPo,2320
9
+ dbt_platform_helper/commands/config.py,sha256=qu2SM5l7-XU3VYSS9ArtLin_2FmKlSIcH2383S2RJIY,12131
10
+ dbt_platform_helper/commands/copilot.py,sha256=1CTyAkTQBF_i6zkqYzOIUo5wq9UYWfj-G1W8D2oRjmE,13623
11
11
  dbt_platform_helper/commands/database.py,sha256=aG3zcMHL5PE96b7LSAu0FGCbgcycQej3AGRcd-bpXUo,4115
12
- dbt_platform_helper/commands/environment.py,sha256=fSd0NmwKVndjtQ6EmV7f8YOSTNqMRQ6oQoLXnUVoRA0,3307
12
+ dbt_platform_helper/commands/environment.py,sha256=WUf5A6MwXAF7qTvW5phX2bH8C07GUs8fDPZs0cQvEg0,3909
13
13
  dbt_platform_helper/commands/generate.py,sha256=YLCPb-xcPapGcsLn-7d1Am7BpGp5l0iecIDTOdNGjHk,722
14
14
  dbt_platform_helper/commands/notify.py,sha256=kVJ0s78QMiaEWPVKu_bbMko4DW2uJy2fu8-HNJsglyk,3748
15
- dbt_platform_helper/commands/pipeline.py,sha256=nep2xgImnZ9CFzqnMIrsJACc7dzIrN8AoO0jR_bZWso,8437
15
+ dbt_platform_helper/commands/pipeline.py,sha256=M3LuLjn2obVNn_w1UxLVh94QSNqQ1481YCfx5h0bKOQ,2574
16
16
  dbt_platform_helper/commands/secrets.py,sha256=QjF9xUChioIr_P0fzqwyEcqLvcN-RNZmNFFlaUPVU9o,3994
17
17
  dbt_platform_helper/commands/version.py,sha256=XVfSd53TDti4cceBqTmRfq_yZnvxs14RbrOjNJHW75U,1444
18
- dbt_platform_helper/constants.py,sha256=GD1pAFIpcKj1f4be-XueHei7_bqYjdW7cEQxz68XKV4,919
18
+ dbt_platform_helper/constants.py,sha256=f1zl5PJoauUxWOirXBJ8bdAGxOAQVLqNeCs6hldaq2I,971
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
- dbt_platform_helper/domain/codebase.py,sha256=vs25ytD0iKwfuX-EoYHwG6qiZAmfvKyQiYT9BeWZ_s4,9688
22
- dbt_platform_helper/domain/conduit.py,sha256=mvjDzxh-SCUCY5qGL73kG8TT7YqeQR8XtNcHx26SW2w,4344
23
- dbt_platform_helper/domain/config_validator.py,sha256=7te6L6zJrb-soVB5TKm4UwJyhCdONmNvE0TbqXb5U60,10177
24
- dbt_platform_helper/domain/copilot_environment.py,sha256=m7m9AUiVwJfDREyh3F9Wv8slaF_EzOL2Lkmk1ZK0X7Q,8107
25
- dbt_platform_helper/domain/database_copy.py,sha256=26gIZyVqd7foHFETkn3LAfyEeMMXbX-wautzlh7aFF4,9157
26
- dbt_platform_helper/domain/maintenance_page.py,sha256=LN-1qnU9oprYvLbV_pHOWOG_QsIluGpYPIfU1E4La-A,15742
27
- dbt_platform_helper/domain/terraform_environment.py,sha256=bXCVL2C9iUxrzZKGQP_jW6S-iRIVUf-iEIABhN2BoTo,2048
21
+ dbt_platform_helper/domain/codebase.py,sha256=qL2xGRj_KibCRc4oUmXbYzFRVGKkvr4MiSO8C9bNOuc,9640
22
+ dbt_platform_helper/domain/conduit.py,sha256=5C5GnF5jssJ1rFFCY6qaKgvLjYUkyytRJE4tHlanYa0,4370
23
+ dbt_platform_helper/domain/config_validator.py,sha256=-ZwdiWJ0SxNv5kjsad1HPPO0P6mPo1eZFp08-M0d_G4,11611
24
+ dbt_platform_helper/domain/copilot_environment.py,sha256=b66w-UpqPb4L7_xIybEhBL0XrCJ0swTD0h0UelHeX5s,8840
25
+ dbt_platform_helper/domain/database_copy.py,sha256=G-vepzJFl-t-clGcr3p6zFTVkrzgEH2W9SG8AS19hLw,9373
26
+ dbt_platform_helper/domain/maintenance_page.py,sha256=VHXmCyDWlf-LSsb6bqL0ObO0j8E3KRXlS1bqIh0ywb4,17894
27
+ dbt_platform_helper/domain/pipelines.py,sha256=IWAHhFsxsrXXisf0DL0oC-233yZkwBVSDcqYBzbywJs,8101
28
+ dbt_platform_helper/domain/terraform_environment.py,sha256=tGvlXe-8hLXNTmTtUcZs25h3ZdQ46sE8vLJYJb7dD0I,3043
29
+ dbt_platform_helper/domain/test_platform_terraform_manifest_generator.py,sha256=DvDlTeLGJfiAJKshBJKe9SZm4uMSOR7MMUPy37rUwKE,4325
28
30
  dbt_platform_helper/jinja2_tags.py,sha256=hKG6RS3zlxJHQ-Op9r2U2-MhWp4s3lZir4Ihe24ApJ0,540
29
31
  dbt_platform_helper/platform_exception.py,sha256=bheZV9lqGvrCVTNT92349dVntNDEDWTEwciZgC83WzE,187
30
32
  dbt_platform_helper/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
33
  dbt_platform_helper/providers/aws.py,sha256=KHgySe6cwEw1wePjw6DL7uSyZRk3DN_Aqqi8KnRoB3M,1208
32
- dbt_platform_helper/providers/cache.py,sha256=vXjOKtzDgcaGy2mtP9Rr2wQKuF7DmYTIGIQ1wsSzfH0,2624
33
- dbt_platform_helper/providers/cloudformation.py,sha256=AMUuhHqjjyYwraFKdkVLgcHs7XZShNHkQFZWHBOMeGg,4877
34
- dbt_platform_helper/providers/config.py,sha256=g9k7VMq3SZs0sxoM7fgMT_Jvv7r_ew8hLM7dnDwGNeU,3102
35
- dbt_platform_helper/providers/copilot.py,sha256=2BkQXn17GC1oGfCSCXXapTqT5OEhpEBeNkQ33g-U6wU,5245
34
+ dbt_platform_helper/providers/cache.py,sha256=GIFVdpfXVnVgf2POQvBvZDP6pvYeUFjEuAdAQLbhJXs,2563
35
+ dbt_platform_helper/providers/cloudformation.py,sha256=SvCZgEVqxdpKfQMRAG3KzFQ43YeOEDqMm2tKmFGtacY,5347
36
+ dbt_platform_helper/providers/config.py,sha256=RWoRESdlvzJpGxEfi2hyaO6tHYzCjKOsV4YWubAivSg,3722
37
+ dbt_platform_helper/providers/copilot.py,sha256=nBbt-PoGXVkmb9njJti6Et8dq1W9GytW3jGBydNNYYU,5317
36
38
  dbt_platform_helper/providers/ecs.py,sha256=XlQHYhZiLGrqR-1ZWMagGH2R2Hy7mCP6676eZL3YbNQ,3842
37
- dbt_platform_helper/providers/load_balancers.py,sha256=0tPkuQ_jWfan44HrBA5EMLqrZaYQl-Lw5PavZ1a1iag,1615
39
+ dbt_platform_helper/providers/files.py,sha256=E4PAHjGlAFEgbU9ntvHJguKKJf5gwrZF6H1LY054QG0,683
40
+ dbt_platform_helper/providers/io.py,sha256=JkWNIMZ_lcYQ6XvdVAuwtTZjoFIPJ-84zbH09nWLMdk,816
41
+ dbt_platform_helper/providers/load_balancers.py,sha256=dQ_hMpo_OyP_PMNodPRTbz7y7feDDBk3p7xNloojLBg,2609
38
42
  dbt_platform_helper/providers/opensearch.py,sha256=tp64jTzHlutleqMpi2h_ZKH1iakZPJnUODebX6i2mfA,1335
39
- dbt_platform_helper/providers/platform_config_schema.py,sha256=vKyk32tMJU99RZMnpqV9phS5-8N4tduSPZJOJBObYss,26513
43
+ dbt_platform_helper/providers/platform_config_schema.py,sha256=nQO42xqBKiUyO62S87aHJPvLVfCLJrNZTrgi_qkxFyE,26619
40
44
  dbt_platform_helper/providers/redis.py,sha256=aj8pitxG9IKrMkL3fIYayQhcHPPzApdaXq0Uq_0yblg,1217
41
45
  dbt_platform_helper/providers/secrets.py,sha256=6cYIR15dLdHmqxtWQpM6R71e0_Xgsg9V291HBG-0LV0,5272
42
46
  dbt_platform_helper/providers/validation.py,sha256=d_YzJZVjGNO65pXcPIcFc9I-FRCESeEC7GvUzP8n-As,596
43
- dbt_platform_helper/providers/yaml_file.py,sha256=ODu_MJxVz6Bta9MmS2IDfiSYxxQhmmwNM0u6B3Tsfd4,2436
47
+ dbt_platform_helper/providers/vpc.py,sha256=V9bLUzkho0kdHIkva9qtE4baeT78duhILj7-vlZb3iA,3118
48
+ dbt_platform_helper/providers/yaml_file.py,sha256=7jMLsDWetBBHWUvcaW652LaYUqICnf0n1H9eS6kNT5o,1990
44
49
  dbt_platform_helper/templates/.copilot/config.yml,sha256=J_bA9sCtBdCPBRImpCBRnYvhQd4vpLYIXIU-lq9vbkA,158
45
50
  dbt_platform_helper/templates/.copilot/image_build_run.sh,sha256=adYucYXEB-kAgZNjTQo0T6EIAY8sh_xCEvVhWKKQ8mw,164
46
51
  dbt_platform_helper/templates/.copilot/phases/build.sh,sha256=umKXePcRvx4XyrRY0fAWIyYFtNjqBI2L8vIJk-V7C60,121
47
52
  dbt_platform_helper/templates/.copilot/phases/install.sh,sha256=pNkEnZBnM4-n1MBzLdPC86YG4Sgj3X7yeQt-swwCunc,123
48
53
  dbt_platform_helper/templates/.copilot/phases/post_build.sh,sha256=qdfaViaaPpnjHxI2Uap9DffM0OcV-FYXk7slT51b_vU,126
49
54
  dbt_platform_helper/templates/.copilot/phases/pre_build.sh,sha256=rzyjyf7Y7LHH7h-Vv_J--QaR7-dTS_5G-R4iE_9mpQI,836
50
- dbt_platform_helper/templates/COMMANDS.md.jinja,sha256=Chfpkr8MfrZg_Y2Oskwqk3uVw-KKOBdGjsts3-KGno8,1081
55
+ dbt_platform_helper/templates/COMMANDS.md.jinja,sha256=8ja7ZGuy1lCP_SWlYrWie---oeO5ucyxfLJkkgwEJ_M,1138
51
56
  dbt_platform_helper/templates/addon-instructions.txt,sha256=Dhd1xDbFKnX7xjfCz0W52P6PqPI9M8dyoxoSHAY2fao,597
52
57
  dbt_platform_helper/templates/addons/README.md,sha256=UdVydY2ocm1OLKecZ8MAiXet3rKsMiq0PpBrmi0Xrns,412
53
58
  dbt_platform_helper/templates/addons/svc/appconfig-ipfilter.yml,sha256=nBIXV4um4jIvXs3Q5QycHqVpJODK5yg_M-xJT6AOBKE,977
@@ -68,7 +73,7 @@ dbt_platform_helper/templates/pipelines/codebase/overrides/bin/override.ts,sha25
68
73
  dbt_platform_helper/templates/pipelines/codebase/overrides/buildspec.deploy.yml,sha256=neXXpwjCrNRPTOxec3m8nRIFZ0bI4zq2WaPHf5eSU_Y,1090
69
74
  dbt_platform_helper/templates/pipelines/codebase/overrides/buildspec.image.yml,sha256=oHtRzH27IXJRyORWp7zvtjln-kTf3FgTdc9W_pBFBfU,1480
70
75
  dbt_platform_helper/templates/pipelines/codebase/overrides/cdk.json,sha256=ZbvoQdcj_k9k1GAD9qHUQcDfQPbMcBPjJwt2mu_S6ho,339
71
- dbt_platform_helper/templates/pipelines/codebase/overrides/package-lock.json,sha256=olH0o2L_csz-05gsjZ-GMKzNZqrkxciaJFUiAt7sYKc,152695
76
+ dbt_platform_helper/templates/pipelines/codebase/overrides/package-lock.json,sha256=vUgOd3CbPQPGE5hoyMoUOiwvobVTAGdjpFaynVTyLh8,155563
72
77
  dbt_platform_helper/templates/pipelines/codebase/overrides/package.json,sha256=XB0Pf63NSsGyowkPGTl1Nki167nRDXJdnxLSN3S_lQg,536
73
78
  dbt_platform_helper/templates/pipelines/codebase/overrides/stack.ts,sha256=v9m6EziRgFnrhF7inbr1KtuOh75FeC054vaWMoAi-qg,21500
74
79
  dbt_platform_helper/templates/pipelines/codebase/overrides/tsconfig.json,sha256=k6KabP-WwhFNgA1AFHNuonTEAnES6eR74jUuYUJEGOM,651
@@ -80,22 +85,22 @@ dbt_platform_helper/templates/svc/manifest-backend.yml,sha256=aAD9ndkbXnF7JBAKS2
80
85
  dbt_platform_helper/templates/svc/manifest-public.yml,sha256=6NHVR_onBu5hbwynLrB6roDRce7JcylSc0qeYvzlPdI,3664
81
86
  dbt_platform_helper/templates/svc/overrides/cfn.patches.yml,sha256=W7-d017akuUq9kda64DQxazavcRcCPDjaAik6t1EZqM,742
82
87
  dbt_platform_helper/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- dbt_platform_helper/utils/application.py,sha256=ugY3nbUHRNFvJgaD4446EdSvIyILEN6ouuuk7eoyXe8,4538
88
+ dbt_platform_helper/utils/application.py,sha256=53xGrG8VBKrM4jyBKjuZZdwaYBbJ3PiznCCwlLieTKw,4804
84
89
  dbt_platform_helper/utils/arn_parser.py,sha256=BaXzIxSOLdFmP_IfAxRq-0j-0Re1iCN7L4j2Zi5-CRQ,1304
85
- dbt_platform_helper/utils/aws.py,sha256=v85AlI-4rcI5OiRlmFtZfLdlH2iY-sL_9Vk62XSdDJQ,18096
90
+ dbt_platform_helper/utils/aws.py,sha256=4GRzsY9nJUWpZoG3zjkb4bj98ec3PMxZ3sFgmvGlw9w,16349
86
91
  dbt_platform_helper/utils/click.py,sha256=Fx4y4bbve1zypvog_sgK7tJtCocmzheoEFLBRv1lfdM,2943
87
92
  dbt_platform_helper/utils/cloudfoundry.py,sha256=GnQ4fVLnDfOdNSrsJjI6ElZHqpgwINeoPn77cUH2UFY,484
88
- dbt_platform_helper/utils/files.py,sha256=zvN4P8-M9C1lkxBmn-S9pfwPqsarAVhomZu8Jrf46Yg,2132
93
+ dbt_platform_helper/utils/files.py,sha256=adQtG2E1IQHDKfeX06l6j1B7UTYukwBuR_uhJHaoi5M,1873
89
94
  dbt_platform_helper/utils/git.py,sha256=7JGZMaI8-cU6-GjXIXjOlsYfKu_RppLOGyAicBd4n_8,704
90
95
  dbt_platform_helper/utils/manifests.py,sha256=ji3UYHCxq9tTpkm4MlRa2y0-JOYYqq1pWZ2h_zpj0UU,507
91
- dbt_platform_helper/utils/messages.py,sha256=aLx6s9utt__IqlDdeIYq4n82ERwludu2Zfqy0Q2t-x8,115
92
- dbt_platform_helper/utils/platform_config.py,sha256=2RfIxBAT5fv7WR4YuP3yomUK7sKZFL77xevuHnUALdg,676
96
+ dbt_platform_helper/utils/messages.py,sha256=nWA7BWLb7ND0WH5TejDN4OQUJSKYBxU4tyCzteCrfT0,142
97
+ dbt_platform_helper/utils/platform_config.py,sha256=hAQ7bX-Jqu4L9zPYpBq3EK73LRhOK5-fEP2r3MbT_iQ,475
93
98
  dbt_platform_helper/utils/template.py,sha256=g-Db-0I6a6diOHkgK1nYA0IxJSO4TRrjqOvlyeOR32o,950
94
99
  dbt_platform_helper/utils/validation.py,sha256=lmWVqRweswj-h7TPYP8lvluq8Qeu0htyKFbz2WUkPxI,1185
95
- dbt_platform_helper/utils/versioning.py,sha256=rLCofLHPXoyc3v9ArDKcjW902p-UX6GCn8n7cjg5I-U,10918
100
+ dbt_platform_helper/utils/versioning.py,sha256=XBZcyj8fW3xU6fzLTe1fMj2d3hKdQi8jUc-ZyPKJtwk,11428
96
101
  platform_helper.py,sha256=bly3JkwbfwnWTZSZziu40dbgzQItsK-DIMMvL6ArFDY,1893
97
- dbt_platform_helper-12.5.0.dist-info/LICENSE,sha256=dP79lN73--7LMApnankTGLqDbImXg8iYFqWgnExGkGk,1090
98
- dbt_platform_helper-12.5.0.dist-info/METADATA,sha256=QmnpEwvlPv34Mb5xPnTIy91UdvEmet4NeocJVMMAk2o,3212
99
- dbt_platform_helper-12.5.0.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
100
- dbt_platform_helper-12.5.0.dist-info/entry_points.txt,sha256=QhbY8F434A-onsg0-FsdMd2U6HKh6Q7yCFFZrGUh5-M,67
101
- dbt_platform_helper-12.5.0.dist-info/RECORD,,
102
+ dbt_platform_helper-12.6.0.dist-info/LICENSE,sha256=dP79lN73--7LMApnankTGLqDbImXg8iYFqWgnExGkGk,1090
103
+ dbt_platform_helper-12.6.0.dist-info/METADATA,sha256=-NLTey5doQK2SqD396ZMiJbk_SVvEjFMitWQtC7_9l4,3212
104
+ dbt_platform_helper-12.6.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
105
+ dbt_platform_helper-12.6.0.dist-info/entry_points.txt,sha256=QhbY8F434A-onsg0-FsdMd2U6HKh6Q7yCFFZrGUh5-M,67
106
+ dbt_platform_helper-12.6.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.0.0
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any