tinybird 0.0.1.dev90__py3-none-any.whl → 0.0.1.dev91__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 tinybird might be problematic. Click here for more details.
- tinybird/tb/__cli__.py +2 -2
- tinybird/tb/cli.py +1 -0
- tinybird/tb/modules/cli.py +1 -1
- tinybird/tb/modules/connection.py +125 -0
- {tinybird-0.0.1.dev90.dist-info → tinybird-0.0.1.dev91.dist-info}/METADATA +1 -1
- {tinybird-0.0.1.dev90.dist-info → tinybird-0.0.1.dev91.dist-info}/RECORD +9 -8
- {tinybird-0.0.1.dev90.dist-info → tinybird-0.0.1.dev91.dist-info}/WHEEL +0 -0
- {tinybird-0.0.1.dev90.dist-info → tinybird-0.0.1.dev91.dist-info}/entry_points.txt +0 -0
- {tinybird-0.0.1.dev90.dist-info → tinybird-0.0.1.dev91.dist-info}/top_level.txt +0 -0
tinybird/tb/__cli__.py
CHANGED
|
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
|
|
|
4
4
|
__url__ = 'https://www.tinybird.co/docs/cli/introduction.html'
|
|
5
5
|
__author__ = 'Tinybird'
|
|
6
6
|
__author_email__ = 'support@tinybird.co'
|
|
7
|
-
__version__ = '0.0.1.
|
|
8
|
-
__revision__ = '
|
|
7
|
+
__version__ = '0.0.1.dev91'
|
|
8
|
+
__revision__ = 'b965ddf'
|
tinybird/tb/cli.py
CHANGED
|
@@ -8,6 +8,7 @@ import tinybird.tb.modules.auth
|
|
|
8
8
|
import tinybird.tb.modules.build
|
|
9
9
|
import tinybird.tb.modules.cli
|
|
10
10
|
import tinybird.tb.modules.common
|
|
11
|
+
import tinybird.tb.modules.connection
|
|
11
12
|
import tinybird.tb.modules.copy
|
|
12
13
|
import tinybird.tb.modules.create
|
|
13
14
|
import tinybird.tb.modules.datasource
|
tinybird/tb/modules/cli.py
CHANGED
|
@@ -412,7 +412,7 @@ async def create_ctx_client(ctx: Context, config: Dict[str, Any], cloud: bool, b
|
|
|
412
412
|
return _get_tb_client(config.get("token", None), config["host"], staging=staging)
|
|
413
413
|
build = command in commands_always_build or build
|
|
414
414
|
if not build and command not in commands_always_local and command not in commands_always_build:
|
|
415
|
-
click.echo(FeedbackManager.gray(message="Running against Tinybird Local
|
|
415
|
+
click.echo(FeedbackManager.gray(message="Running against Tinybird Local"))
|
|
416
416
|
return await get_tinybird_local_client(config, build=build, staging=staging)
|
|
417
417
|
|
|
418
418
|
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# This is a command file for our CLI. Please keep it clean.
|
|
2
|
+
#
|
|
3
|
+
# - If it makes sense and only when strictly necessary, you can create utility functions in this file.
|
|
4
|
+
# - But please, **do not** interleave utility functions and command definitions.
|
|
5
|
+
|
|
6
|
+
from typing import Any, Dict, List, Optional
|
|
7
|
+
|
|
8
|
+
import click
|
|
9
|
+
from click import Context
|
|
10
|
+
|
|
11
|
+
from tinybird.client import TinyB
|
|
12
|
+
from tinybird.tb.modules.cli import cli
|
|
13
|
+
from tinybird.tb.modules.common import (
|
|
14
|
+
DataConnectorType,
|
|
15
|
+
_get_setting_value,
|
|
16
|
+
coro,
|
|
17
|
+
echo_safe_humanfriendly_tables_format_smart_table,
|
|
18
|
+
)
|
|
19
|
+
from tinybird.tb.modules.feedback_manager import FeedbackManager
|
|
20
|
+
|
|
21
|
+
DATA_CONNECTOR_SETTINGS: Dict[DataConnectorType, List[str]] = {
|
|
22
|
+
DataConnectorType.KAFKA: [
|
|
23
|
+
"kafka_bootstrap_servers",
|
|
24
|
+
"kafka_sasl_plain_username",
|
|
25
|
+
"kafka_sasl_plain_password",
|
|
26
|
+
"cli_version",
|
|
27
|
+
"endpoint",
|
|
28
|
+
"kafka_security_protocol",
|
|
29
|
+
"kafka_sasl_mechanism",
|
|
30
|
+
"kafka_schema_registry_url",
|
|
31
|
+
"kafka_ssl_ca_pem",
|
|
32
|
+
],
|
|
33
|
+
DataConnectorType.GCLOUD_SCHEDULER: ["gcscheduler_region"],
|
|
34
|
+
DataConnectorType.SNOWFLAKE: [
|
|
35
|
+
"account",
|
|
36
|
+
"username",
|
|
37
|
+
"password",
|
|
38
|
+
"role",
|
|
39
|
+
"warehouse",
|
|
40
|
+
"warehouse_size",
|
|
41
|
+
"stage",
|
|
42
|
+
"integration",
|
|
43
|
+
],
|
|
44
|
+
DataConnectorType.BIGQUERY: ["account"],
|
|
45
|
+
DataConnectorType.GCLOUD_STORAGE: [
|
|
46
|
+
"gcs_private_key_id",
|
|
47
|
+
"gcs_client_x509_cert_url",
|
|
48
|
+
"gcs_project_id",
|
|
49
|
+
"gcs_client_id",
|
|
50
|
+
"gcs_client_email",
|
|
51
|
+
"gcs_private_key",
|
|
52
|
+
],
|
|
53
|
+
DataConnectorType.GCLOUD_STORAGE_HMAC: [
|
|
54
|
+
"gcs_hmac_access_id",
|
|
55
|
+
"gcs_hmac_secret",
|
|
56
|
+
],
|
|
57
|
+
DataConnectorType.GCLOUD_STORAGE_SA: ["account_email"],
|
|
58
|
+
DataConnectorType.AMAZON_S3: [
|
|
59
|
+
"s3_access_key_id",
|
|
60
|
+
"s3_secret_access_key",
|
|
61
|
+
"s3_region",
|
|
62
|
+
],
|
|
63
|
+
DataConnectorType.AMAZON_S3_IAMROLE: [
|
|
64
|
+
"s3_iamrole_arn",
|
|
65
|
+
"s3_iamrole_region",
|
|
66
|
+
"s3_iamrole_external_id",
|
|
67
|
+
],
|
|
68
|
+
DataConnectorType.AMAZON_DYNAMODB: [
|
|
69
|
+
"dynamodb_iamrole_arn",
|
|
70
|
+
"dynamodb_iamrole_region",
|
|
71
|
+
"dynamodb_iamrole_external_id",
|
|
72
|
+
],
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
SENSITIVE_CONNECTOR_SETTINGS = {
|
|
76
|
+
DataConnectorType.KAFKA: ["kafka_sasl_plain_password"],
|
|
77
|
+
DataConnectorType.GCLOUD_SCHEDULER: [
|
|
78
|
+
"gcscheduler_target_url",
|
|
79
|
+
"gcscheduler_job_name",
|
|
80
|
+
"gcscheduler_region",
|
|
81
|
+
],
|
|
82
|
+
DataConnectorType.GCLOUD_STORAGE_HMAC: ["gcs_hmac_secret"],
|
|
83
|
+
DataConnectorType.AMAZON_S3: ["s3_secret_access_key"],
|
|
84
|
+
DataConnectorType.AMAZON_S3_IAMROLE: ["s3_iamrole_arn"],
|
|
85
|
+
DataConnectorType.AMAZON_DYNAMODB: ["dynamodb_iamrole_arn"],
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@cli.group()
|
|
90
|
+
@click.pass_context
|
|
91
|
+
def connection(ctx: Context) -> None:
|
|
92
|
+
"""Connection commands."""
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@connection.command(name="ls")
|
|
96
|
+
@click.option("--service", help="Filter by service")
|
|
97
|
+
@click.pass_context
|
|
98
|
+
@coro
|
|
99
|
+
async def connection_ls(ctx: Context, service: Optional[DataConnectorType] = None) -> None:
|
|
100
|
+
"""List connections."""
|
|
101
|
+
obj: Dict[str, Any] = ctx.ensure_object(dict)
|
|
102
|
+
client: TinyB = obj["client"]
|
|
103
|
+
|
|
104
|
+
connections = await client.connections(connector=service, skip_bigquery=True)
|
|
105
|
+
columns = []
|
|
106
|
+
table = []
|
|
107
|
+
|
|
108
|
+
click.echo(FeedbackManager.info_connections())
|
|
109
|
+
|
|
110
|
+
if not service:
|
|
111
|
+
sensitive_settings = []
|
|
112
|
+
columns = ["service", "name", "id", "connected_datasources"]
|
|
113
|
+
else:
|
|
114
|
+
sensitive_settings = SENSITIVE_CONNECTOR_SETTINGS.get(service, [])
|
|
115
|
+
columns = ["service", "name", "id", "connected_datasources"]
|
|
116
|
+
if connector_settings := DATA_CONNECTOR_SETTINGS.get(service):
|
|
117
|
+
columns += connector_settings
|
|
118
|
+
|
|
119
|
+
for connection in connections:
|
|
120
|
+
row = [_get_setting_value(connection, setting, sensitive_settings) for setting in columns]
|
|
121
|
+
table.append(row)
|
|
122
|
+
|
|
123
|
+
column_names = [c.replace("kafka_", "") for c in columns]
|
|
124
|
+
echo_safe_humanfriendly_tables_format_smart_table(table, column_names=column_names)
|
|
125
|
+
click.echo("\n")
|
|
@@ -15,14 +15,15 @@ tinybird/syncasync.py,sha256=IPnOx6lMbf9SNddN1eBtssg8vCLHMt76SuZ6YNYm-Yk,27761
|
|
|
15
15
|
tinybird/tornado_template.py,sha256=jjNVDMnkYFWXflmT8KU_Ssbo5vR8KQq3EJMk5vYgXRw,41959
|
|
16
16
|
tinybird/ch_utils/constants.py,sha256=aYvg2C_WxYWsnqPdZB1ZFoIr8ZY-XjUXYyHKE9Ansj0,3890
|
|
17
17
|
tinybird/ch_utils/engine.py,sha256=BZuPM7MFS7vaEKK5tOMR2bwSAgJudPrJt27uVEwZmTY,40512
|
|
18
|
-
tinybird/tb/__cli__.py,sha256=
|
|
19
|
-
tinybird/tb/cli.py,sha256=
|
|
18
|
+
tinybird/tb/__cli__.py,sha256=T_ssIbV6pifxlCyF-t9ua_F2d_5mle0hocUCAZm8PNY,251
|
|
19
|
+
tinybird/tb/cli.py,sha256=SSXALqjtPShcQbgvT1u7up2YL0ls36wXABX0hZwebdQ,1070
|
|
20
20
|
tinybird/tb/modules/auth.py,sha256=L1IatO2arRSzys3t8px8xVt8uPWUL5EVD0sFzAV_uVU,9022
|
|
21
21
|
tinybird/tb/modules/build.py,sha256=-lRGBxKtuipmyl3pmiGcfp67fH1Ed-COfHAZKdgLIWo,10483
|
|
22
22
|
tinybird/tb/modules/cicd.py,sha256=T0lb9u_bDdTUVe8TwNNb1qQ5KnSPHMVjqPfKF4BBNBw,5347
|
|
23
|
-
tinybird/tb/modules/cli.py,sha256=
|
|
23
|
+
tinybird/tb/modules/cli.py,sha256=atBf86g3mgXi9L7wy3YtovvdFk8QXfjneUP08NvY_jk,16466
|
|
24
24
|
tinybird/tb/modules/common.py,sha256=xWdxukkqTdK0YFHSUYxHx8_cJO165h2hdrE75aLHa7g,80383
|
|
25
25
|
tinybird/tb/modules/config.py,sha256=BVZg-4f_R3vJTwCChXY2AXaH67SRk62xoP_IymquosI,11404
|
|
26
|
+
tinybird/tb/modules/connection.py,sha256=WKeDxbTpSsQ1PUmsT730g3S5RT2PtR5mPpVEanD1nbM,3933
|
|
26
27
|
tinybird/tb/modules/copy.py,sha256=MAVqKip8_QhOYq99U_XuqSO6hCLJEh5sFtbhcXtI3SI,5802
|
|
27
28
|
tinybird/tb/modules/create.py,sha256=KjotVfIQLfcPyQBykTHnPLn4ikrm6qqeMcbRE1d-6Jo,13280
|
|
28
29
|
tinybird/tb/modules/datasource.py,sha256=dNCK9iCR2xPLfwqqwg2ixyE6NuoVEiJU2mBZBmOYrVY,16906
|
|
@@ -78,8 +79,8 @@ tinybird/tb_cli_modules/config.py,sha256=IsgdtFRnUrkY8-Zo32lmk6O7u3bHie1QCxLwgp4
|
|
|
78
79
|
tinybird/tb_cli_modules/exceptions.py,sha256=pmucP4kTF4irIt7dXiG-FcnI-o3mvDusPmch1L8RCWk,3367
|
|
79
80
|
tinybird/tb_cli_modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
|
|
80
81
|
tinybird/tb_cli_modules/telemetry.py,sha256=Hh2Io8ZPROSunbOLuMvuIFU4TqwWPmQTqal4WS09K1A,10449
|
|
81
|
-
tinybird-0.0.1.
|
|
82
|
-
tinybird-0.0.1.
|
|
83
|
-
tinybird-0.0.1.
|
|
84
|
-
tinybird-0.0.1.
|
|
85
|
-
tinybird-0.0.1.
|
|
82
|
+
tinybird-0.0.1.dev91.dist-info/METADATA,sha256=iN68_RO9ZH5bntib_gq07U3hcPtPv206bagyLYciECw,2585
|
|
83
|
+
tinybird-0.0.1.dev91.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
84
|
+
tinybird-0.0.1.dev91.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
|
|
85
|
+
tinybird-0.0.1.dev91.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
|
|
86
|
+
tinybird-0.0.1.dev91.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|