tinybird-cli 3.3.1.dev2__tar.gz → 3.3.1.dev4__tar.gz

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 (48) hide show
  1. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/PKG-INFO +14 -3
  2. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/__cli__.py +2 -2
  3. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/connector_settings.py +30 -2
  4. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/data_connectors/credentials.py +5 -0
  5. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/datafile.py +4 -1
  6. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/cicd.py +29 -9
  7. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird_cli.egg-info/PKG-INFO +14 -3
  8. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/setup.cfg +0 -0
  9. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/ch_utils/constants.py +0 -0
  10. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/ch_utils/engine.py +0 -0
  11. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/check_pypi.py +0 -0
  12. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/client.py +0 -0
  13. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/config.py +0 -0
  14. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/connectors.py +0 -0
  15. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/context.py +0 -0
  16. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/datatypes.py +0 -0
  17. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/feedback_manager.py +0 -0
  18. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/git_settings.py +0 -0
  19. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/sql.py +0 -0
  20. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/sql_template.py +0 -0
  21. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/sql_template_fmt.py +0 -0
  22. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/sql_toolset.py +0 -0
  23. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/syncasync.py +0 -0
  24. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli.py +0 -0
  25. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/auth.py +0 -0
  26. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/branch.py +0 -0
  27. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/cli.py +0 -0
  28. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/common.py +0 -0
  29. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/config.py +0 -0
  30. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/connection.py +0 -0
  31. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/datasource.py +0 -0
  32. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/exceptions.py +0 -0
  33. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/job.py +0 -0
  34. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/pipe.py +0 -0
  35. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/regions.py +0 -0
  36. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/telemetry.py +0 -0
  37. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/test.py +0 -0
  38. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  39. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  40. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/token.py +0 -0
  41. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/workspace.py +0 -0
  42. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  43. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird/tornado_template.py +0 -0
  44. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird_cli.egg-info/SOURCES.txt +0 -0
  45. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird_cli.egg-info/dependency_links.txt +0 -0
  46. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird_cli.egg-info/entry_points.txt +0 -0
  47. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird_cli.egg-info/requires.txt +0 -0
  48. {tinybird-cli-3.3.1.dev2 → tinybird-cli-3.3.1.dev4}/tinybird_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird-cli
3
- Version: 3.3.1.dev2
3
+ Version: 3.3.1.dev4
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://docs.tinybird.co/cli.html
6
6
  Author: Tinybird
@@ -19,10 +19,21 @@ Changelog
19
19
 
20
20
  ---------
21
21
 
22
+
23
+ 3.3.1.dev4
24
+ ***********
25
+
26
+ - `Changed` script `exec_test.sh` from `tb init --git` to run retries to avoid flakiness in tests
27
+
28
+ 3.3.1.dev3
29
+ ***********
30
+
31
+ - `Fixed` `IMPORT` and `ENGINE` changes were not detected `tb deploy`
32
+
22
33
  3.3.1.dev2
23
34
  ***********
24
35
 
25
- - `Changed` Update `tb release rm --oldest-rollback` to use new api
36
+ - `Changed` Update `tb release rm --oldest-rollback` to use new API
26
37
 
27
38
  3.3.1.dev1
28
39
  ************
@@ -31,7 +42,7 @@ Changelog
31
42
 
32
43
  3.3.0
33
44
  ************
34
- - `Added` Show warning when doing data or pipe operations directly against Live
45
+ - `Added` Show warning when doing data or pipe operations directly against Live.
35
46
  - `Added` `bi_stats`, `bi_stats_rt` and `endpoint_errors` to the list of service data sources that the CLI ignore when looking for dependencies of pipes being pushed.
36
47
  - `Added` S3 Iam Role connection creation
37
48
  - `Added` Connector credential validation
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
4
4
  __url__ = 'https://docs.tinybird.co/cli.html'
5
5
  __author__ = 'Tinybird'
6
6
  __author_email__ = 'support@tinybird.co'
7
- __version__ = '3.3.1.dev2'
8
- __revision__ = 'aa7ddaa'
7
+ __version__ = '3.3.1.dev4'
8
+ __revision__ = '4ea51cf'
@@ -5,7 +5,12 @@ from typing import List, Optional, Union
5
5
 
6
6
  from pydantic import BaseModel
7
7
 
8
- from tinybird.data_connectors.credentials import GCSConnectorCredentials, IAMRoleAWSCredentials, S3ConnectorCredentials
8
+ from tinybird.data_connectors.credentials import (
9
+ GCSConnectorCredentials,
10
+ GCSServiceAccountCredentials,
11
+ IAMRoleAWSCredentials,
12
+ S3ConnectorCredentials,
13
+ )
9
14
 
10
15
  GCS_BASE_URL = "https://storage.googleapis.com"
11
16
 
@@ -17,6 +22,7 @@ class DataConnectorType(str, Enum):
17
22
  BIGQUERY = "bigquery"
18
23
  GCLOUD_STORAGE = "gcs"
19
24
  GCLOUD_STORAGE_HMAC = "gcs_hmac"
25
+ GCLOUD_STORAGE_SA = "gcs_service_account"
20
26
  AMAZON_S3 = "s3"
21
27
  AMAZON_S3_IAMROLE = "s3_iamrole"
22
28
 
@@ -107,6 +113,18 @@ class BigQueryConnectorSetting(DataConnectorSetting):
107
113
  account: Optional[str] = None
108
114
 
109
115
 
116
+ class GCSServiceAccountConnectorSetting(DataConnectorSetting):
117
+ account_email: str
118
+ endpoint_url: str = GCS_BASE_URL
119
+
120
+ @property
121
+ def credentials(self) -> GCSServiceAccountCredentials:
122
+ return GCSServiceAccountCredentials(account_email=self.account_email)
123
+
124
+ def get_provider_name(self) -> str:
125
+ return DataConnectorType.GCLOUD_STORAGE
126
+
127
+
110
128
  class GCSHmacConnectorSetting(DataConnectorSetting):
111
129
  gcs_hmac_access_id: str
112
130
  gcs_hmac_secret: str
@@ -139,11 +157,14 @@ DATA_CONNECTOR_SETTINGS: dict[DataConnectors, type[DataConnectorSetting]] = {
139
157
  DataConnectors.BIGQUERY: BigQueryConnectorSetting,
140
158
  DataConnectors.GCLOUD_STORAGE: GCSConnectorSetting,
141
159
  DataConnectors.GCLOUD_STORAGE_HMAC: GCSHmacConnectorSetting,
160
+ DataConnectors.GCLOUD_STORAGE_SA: GCSServiceAccountConnectorSetting,
142
161
  DataConnectors.AMAZON_S3: S3ConnectorSetting,
143
162
  DataConnectors.AMAZON_S3_IAMROLE: S3IAMConnectorSetting,
144
163
  }
145
164
 
146
- SinkConnectorSettings = Union[S3ConnectorSetting, S3IAMConnectorSetting, GCSHmacConnectorSetting]
165
+ SinkConnectorSettings = Union[
166
+ S3ConnectorSetting, S3IAMConnectorSetting, GCSHmacConnectorSetting, GCSServiceAccountConnectorSetting
167
+ ]
147
168
 
148
169
 
149
170
  class DataLinkerSettings:
@@ -188,6 +209,13 @@ class DataSinkSettings:
188
209
  "format",
189
210
  "compression",
190
211
  ]
212
+ gcs_service_account = [
213
+ "bucket_path",
214
+ "file_template",
215
+ "partition_node",
216
+ "format",
217
+ "compression",
218
+ ]
191
219
 
192
220
 
193
221
  class DataSensitiveSettings:
@@ -24,3 +24,8 @@ class IAMRoleAWSCredentials(ConnectorCredentials):
24
24
  class GCSConnectorCredentials(ConnectorCredentials):
25
25
  access_key_id: str
26
26
  secret_access_key: str
27
+
28
+
29
+ @dataclasses.dataclass(frozen=True)
30
+ class GCSServiceAccountCredentials(ConnectorCredentials):
31
+ account_email: str
@@ -4277,8 +4277,11 @@ async def format_datasource(
4277
4277
  format_description(file_parts, doc)
4278
4278
  format_tokens(file_parts, doc)
4279
4279
  format_schema(file_parts, doc.nodes[0])
4280
- await format_engine(file_parts, doc.nodes[0], only_ttl=True, client=client)
4280
+ await format_engine(file_parts, doc.nodes[0], only_ttl=True if not for_deploy_diff else False, client=client)
4281
+ if for_deploy_diff:
4282
+ format_import_settings(file_parts, doc.nodes[0])
4281
4283
  format_shared_with(file_parts, doc)
4284
+
4282
4285
  else:
4283
4286
  format_sources(file_parts, doc)
4284
4287
  format_maintainer(file_parts, doc)
@@ -221,23 +221,43 @@ run_test() {
221
221
  fi
222
222
  echo "** $(cat $t)"
223
223
  tmpfile=$(mktemp)
224
- if bash $t $2 >$tmpfile; then
225
- if diff -B ${t}.result $tmpfile; then
226
- echo "Test $t: OK";
224
+ retries=0
225
+ TOTAL_RETRIES=3
226
+
227
+ # When appending fixtures, we need to retry in case of the data is not replicated in time
228
+ while [ $retries -lt $TOTAL_RETRIES ]; do
229
+ # Run the test and store the output in a temporary file
230
+ bash $t $2 >$tmpfile
231
+ exit_code=$?
232
+ if [ "$exit_code" -eq 0 ]; then
233
+ # If the test passed, break the loop
234
+ if diff -B ${t}.result $tmpfile >/dev/null 2>&1; then
235
+ break
236
+ # If the test failed, increment the retries counter and try again
237
+ else
238
+ retries=$((retries+1))
239
+ fi
240
+ # If the bash command failed, print an error message and break the loop
227
241
  else
228
- echo "🚨 ERROR: Test $t failed, diff:";
229
- diff -B ${t}.result $tmpfile
230
- cat $tmpfile
231
- rm $tmpfile
232
- return 1
242
+ break
233
243
  fi
244
+ done
245
+
246
+ if diff -B ${t}.result $tmpfile >/dev/null 2>&1; then
247
+ echo "✅ Test $t passed"
248
+ rm $tmpfile
249
+ return 0
250
+ elif [ $retries -eq $TOTAL_RETRIES ]; then
251
+ echo "🚨 ERROR: Test $t failed, diff:";
252
+ diff -B ${t}.result $tmpfile
253
+ rm $tmpfile
254
+ return 1
234
255
  else
235
256
  echo "🚨 ERROR: Test $t failed with bash command exit code $?"
236
257
  cat $tmpfile
237
258
  rm $tmpfile
238
259
  return 1
239
260
  fi
240
- rm $tmpfile
241
261
  echo ""
242
262
  }
243
263
  export -f run_test
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird-cli
3
- Version: 3.3.1.dev2
3
+ Version: 3.3.1.dev4
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://docs.tinybird.co/cli.html
6
6
  Author: Tinybird
@@ -19,10 +19,21 @@ Changelog
19
19
 
20
20
  ---------
21
21
 
22
+
23
+ 3.3.1.dev4
24
+ ***********
25
+
26
+ - `Changed` script `exec_test.sh` from `tb init --git` to run retries to avoid flakiness in tests
27
+
28
+ 3.3.1.dev3
29
+ ***********
30
+
31
+ - `Fixed` `IMPORT` and `ENGINE` changes were not detected `tb deploy`
32
+
22
33
  3.3.1.dev2
23
34
  ***********
24
35
 
25
- - `Changed` Update `tb release rm --oldest-rollback` to use new api
36
+ - `Changed` Update `tb release rm --oldest-rollback` to use new API
26
37
 
27
38
  3.3.1.dev1
28
39
  ************
@@ -31,7 +42,7 @@ Changelog
31
42
 
32
43
  3.3.0
33
44
  ************
34
- - `Added` Show warning when doing data or pipe operations directly against Live
45
+ - `Added` Show warning when doing data or pipe operations directly against Live.
35
46
  - `Added` `bi_stats`, `bi_stats_rt` and `endpoint_errors` to the list of service data sources that the CLI ignore when looking for dependencies of pipes being pushed.
36
47
  - `Added` S3 Iam Role connection creation
37
48
  - `Added` Connector credential validation