gooddata-flight-server 1.53.0__tar.gz → 1.53.1.dev1__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.
Potentially problematic release.
This version of gooddata-flight-server might be problematic. Click here for more details.
- gooddata_flight_server-1.53.1.dev1/.gitignore +69 -0
- gooddata_flight_server-1.53.1.dev1/.readthedocs.yaml +19 -0
- gooddata_flight_server-1.53.1.dev1/Makefile +19 -0
- {gooddata_flight_server-1.53.0/gooddata_flight_server.egg-info → gooddata_flight_server-1.53.1.dev1}/PKG-INFO +7 -20
- gooddata_flight_server-1.53.1.dev1/mypy.ini +35 -0
- gooddata_flight_server-1.53.1.dev1/pyproject.toml +77 -0
- gooddata_flight_server-1.53.1.dev1/sample-config.toml +345 -0
- gooddata_flight_server-1.53.1.dev1/tests/__init__.py +1 -0
- gooddata_flight_server-1.53.1.dev1/tests/assert_error_info.py +12 -0
- gooddata_flight_server-1.53.1.dev1/tests/config/__init__.py +1 -0
- gooddata_flight_server-1.53.1.dev1/tests/config/auth-config.toml +6 -0
- gooddata_flight_server-1.53.1.dev1/tests/config/empty-config.toml +5 -0
- gooddata_flight_server-1.53.1.dev1/tests/config/private_key.pem +1 -0
- gooddata_flight_server-1.53.1.dev1/tests/config/sample-config.toml +34 -0
- gooddata_flight_server-1.53.1.dev1/tests/config/test_config.py +80 -0
- gooddata_flight_server-1.53.1.dev1/tests/config/tls-config.toml +11 -0
- gooddata_flight_server-1.53.1.dev1/tests/errors/__init__.py +1 -0
- gooddata_flight_server-1.53.1.dev1/tests/errors/error_info.py +92 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/__init__.py +1 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/conftest.py +91 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/test_server.py +121 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/testing_token_verifier.py +11 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/tls/ca-cert.pem +35 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/tls/client-cert.pem +33 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/tls/client-key.pem +52 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/tls/server-cert.pem +33 -0
- gooddata_flight_server-1.53.1.dev1/tests/server/tls/server-key.pem +52 -0
- gooddata_flight_server-1.53.1.dev1/tests/tasks/__init__.py +1 -0
- gooddata_flight_server-1.53.1.dev1/tests/tasks/test_task_executor.py +231 -0
- gooddata_flight_server-1.53.1.dev1/tests/tasks/test_temporal_container.py +72 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/invalid_methods_module/__init__.py +2 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/invalid_methods_module/mock_methods.py +16 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/multiple_methods_module/__init__.py +5 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/multiple_methods_module/mock_methods.py +18 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/no_methods_module/__init__.py +2 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/no_methods_module/mock_methods.py +12 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/test_methods_discovery.py +49 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/valid_methods_module/__init__.py +2 -0
- gooddata_flight_server-1.53.1.dev1/tests/utils/valid_methods_module/mock_methods.py +13 -0
- gooddata_flight_server-1.53.1.dev1/tox.ini +29 -0
- gooddata_flight_server-1.53.0/PKG-INFO +0 -750
- gooddata_flight_server-1.53.0/gooddata_flight_server.egg-info/SOURCES.txt +0 -53
- gooddata_flight_server-1.53.0/gooddata_flight_server.egg-info/dependency_links.txt +0 -1
- gooddata_flight_server-1.53.0/gooddata_flight_server.egg-info/requires.txt +0 -8
- gooddata_flight_server-1.53.0/gooddata_flight_server.egg-info/top_level.txt +0 -1
- gooddata_flight_server-1.53.0/setup.cfg +0 -4
- gooddata_flight_server-1.53.0/setup.py +0 -74
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1}/LICENSE.txt +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1}/MANIFEST.in +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1}/README.md +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1}/bin/gooddata-flight-server +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/_version.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/cli.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/config/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/config/config.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/errors/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/errors/error_code.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/errors/error_info.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/exceptions.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/health/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/health/health_check_http_server.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/health/server_health_monitor.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/metrics.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/py.typed +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/auth/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/auth/auth_middleware.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/auth/token_verifier.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/auth/token_verifier_factory.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/auth/token_verifier_impl.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/base.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/default.logging.ini +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/flight_rpc/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/flight_rpc/flight_middleware.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/flight_rpc/flight_server.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/flight_rpc/flight_service.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/flight_rpc/server_methods.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/server_base.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/server/server_main.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/base.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/metrics.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/task.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/task_error.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/task_executor.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/task_result.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/temporal_container.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/tasks/thread_task_executor.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/utils/__init__.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/utils/libc_utils.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/utils/logging.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/utils/methods_discovery.py +0 -0
- {gooddata_flight_server-1.53.0 → gooddata_flight_server-1.53.1.dev1/src}/gooddata_flight_server/utils/otel_tracing.py +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
env/
|
|
12
|
+
build/
|
|
13
|
+
develop-eggs/
|
|
14
|
+
dist/
|
|
15
|
+
downloads/
|
|
16
|
+
eggs/
|
|
17
|
+
.eggs/
|
|
18
|
+
lib/
|
|
19
|
+
lib64/
|
|
20
|
+
parts/
|
|
21
|
+
sdist/
|
|
22
|
+
var/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
|
|
27
|
+
# PyInstaller
|
|
28
|
+
# Usually these files are written by a python script from a template
|
|
29
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
30
|
+
*.manifest
|
|
31
|
+
*.spec
|
|
32
|
+
|
|
33
|
+
# Installer logs
|
|
34
|
+
pip-log.txt
|
|
35
|
+
pip-delete-this-directory.txt
|
|
36
|
+
|
|
37
|
+
# Unit test / coverage reports
|
|
38
|
+
htmlcov/
|
|
39
|
+
.tox/
|
|
40
|
+
.coverage
|
|
41
|
+
.coverage.*
|
|
42
|
+
.cache
|
|
43
|
+
nosetests.xml
|
|
44
|
+
coverage.xml
|
|
45
|
+
*,cover
|
|
46
|
+
.hypothesis/
|
|
47
|
+
venv/
|
|
48
|
+
.venv/
|
|
49
|
+
.python-version
|
|
50
|
+
.pytest_cache
|
|
51
|
+
|
|
52
|
+
# Translations
|
|
53
|
+
*.mo
|
|
54
|
+
*.pot
|
|
55
|
+
|
|
56
|
+
# Django stuff:
|
|
57
|
+
*.log
|
|
58
|
+
|
|
59
|
+
# Sphinx documentation
|
|
60
|
+
docs/_build/
|
|
61
|
+
docs/_autosummary/
|
|
62
|
+
|
|
63
|
+
# PyBuilder
|
|
64
|
+
target/
|
|
65
|
+
|
|
66
|
+
#Ipython Notebook
|
|
67
|
+
.ipynb_checkpoints
|
|
68
|
+
|
|
69
|
+
test_data
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
2
|
+
# Read the Docs configuration file for Sphinx projects
|
|
3
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
|
4
|
+
|
|
5
|
+
# Required
|
|
6
|
+
version: 2
|
|
7
|
+
|
|
8
|
+
# Set the OS, Python version and other tools you might need
|
|
9
|
+
build:
|
|
10
|
+
os: ubuntu-22.04
|
|
11
|
+
tools:
|
|
12
|
+
python: "3.11"
|
|
13
|
+
|
|
14
|
+
sphinx:
|
|
15
|
+
configuration: gooddata-flight-server/docs/conf.py
|
|
16
|
+
|
|
17
|
+
python:
|
|
18
|
+
install:
|
|
19
|
+
- requirements: gooddata-flight-server/docs/requirements.txt
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
2
|
+
include ../../project_common.mk
|
|
3
|
+
|
|
4
|
+
.PHONY: docs
|
|
5
|
+
docs:
|
|
6
|
+
tox $(TOX_FLAGS) -e docs
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
.PHONY: dev-certs
|
|
10
|
+
dev-certs:
|
|
11
|
+
mkdir -p test_data
|
|
12
|
+
# create CA with self-signed certificate > generate keys + cert requests for server and client > sign
|
|
13
|
+
cd test_data && \
|
|
14
|
+
rm -f *.pem && \
|
|
15
|
+
openssl req -x509 -newkey rsa:4096 -days 3650 -nodes -keyout ca-key.pem -out ca-cert.pem -subj "/C=NA/ST=Unknown/L=Unknown/O=Unknown/OU=Unknown/CN=localhost/emailAddress=example@example.com" && \
|
|
16
|
+
openssl req -newkey rsa:4096 -nodes -keyout server-key.pem -out server-req.pem -subj "/C=NA/ST=Unknown/L=Unknown/O=Unknown/OU=Computer/CN=localhost/emailAddress=example@example.com" && \
|
|
17
|
+
openssl req -newkey rsa:4096 -nodes -keyout client-key.pem -out client-req.pem -subj "/C=NA/ST=Unknown/L=Unknown/O=Unknown/OU=Computer/CN=testClient1/emailAddress=example@example.com" && \
|
|
18
|
+
openssl x509 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem && \
|
|
19
|
+
openssl x509 -req -in client-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gooddata-flight-server
|
|
3
|
-
Version: 1.53.
|
|
3
|
+
Version: 1.53.1.dev1
|
|
4
4
|
Summary: Flight RPC server to host custom functions
|
|
5
|
-
|
|
6
|
-
Author-email: support@gooddata.com
|
|
7
|
-
License: MIT
|
|
8
|
-
Project-URL: Documentation, https://gooddata-flight-server.readthedocs.io/en/v1.53.0
|
|
5
|
+
Project-URL: Documentation, https://gooddata-flight-server.readthedocs.io/en/v1.53.1.dev1
|
|
9
6
|
Project-URL: Source, https://github.com/gooddata/gooddata-python-sdk
|
|
10
|
-
|
|
7
|
+
Author-email: GoodData <support@gooddata.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
License-File: LICENSE.txt
|
|
10
|
+
Keywords: analytics,business,cloud,custom functions,flight,flight rpc,gooddata,headless,headless-bi,intelligence,layer,metrics,native,rpc,semantic,sql
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Environment :: Console
|
|
13
13
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -21,8 +21,6 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
21
21
|
Classifier: Topic :: Software Development
|
|
22
22
|
Classifier: Typing :: Typed
|
|
23
23
|
Requires-Python: >=3.9.0
|
|
24
|
-
Description-Content-Type: text/markdown
|
|
25
|
-
License-File: LICENSE.txt
|
|
26
24
|
Requires-Dist: dynaconf<4.0.0,>=3.1.11
|
|
27
25
|
Requires-Dist: opentelemetry-api<=2.0.0,>=1.24.0
|
|
28
26
|
Requires-Dist: opentelemetry-sdk<=2.0.0,>=1.24.0
|
|
@@ -31,18 +29,7 @@ Requires-Dist: prometheus-client~=0.20.0
|
|
|
31
29
|
Requires-Dist: pyarrow>=16.1.0
|
|
32
30
|
Requires-Dist: readerwriterlock~=1.0.9
|
|
33
31
|
Requires-Dist: structlog<25.0.0,>=24.0.0
|
|
34
|
-
|
|
35
|
-
Dynamic: author-email
|
|
36
|
-
Dynamic: classifier
|
|
37
|
-
Dynamic: description
|
|
38
|
-
Dynamic: description-content-type
|
|
39
|
-
Dynamic: keywords
|
|
40
|
-
Dynamic: license
|
|
41
|
-
Dynamic: license-file
|
|
42
|
-
Dynamic: project-url
|
|
43
|
-
Dynamic: requires-dist
|
|
44
|
-
Dynamic: requires-python
|
|
45
|
-
Dynamic: summary
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
46
33
|
|
|
47
34
|
# GoodData Flight Server
|
|
48
35
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
2
|
+
[mypy]
|
|
3
|
+
plugins = pydantic.mypy
|
|
4
|
+
disallow_untyped_defs = True
|
|
5
|
+
warn_redundant_casts = True
|
|
6
|
+
strict_equality = True
|
|
7
|
+
no_implicit_optional = True
|
|
8
|
+
python_version = 3.9
|
|
9
|
+
|
|
10
|
+
[mypy-gooddata_api_client.*]
|
|
11
|
+
ignore_missing_imports = True
|
|
12
|
+
|
|
13
|
+
[mypy-gooddata_sdk.*]
|
|
14
|
+
ignore_missing_imports = True
|
|
15
|
+
|
|
16
|
+
[mypy-pyarrow.*]
|
|
17
|
+
ignore_missing_imports = True
|
|
18
|
+
|
|
19
|
+
[mypy-orjson.*]
|
|
20
|
+
ignore_missing_imports = True
|
|
21
|
+
|
|
22
|
+
[mypy-dynaconf.*]
|
|
23
|
+
ignore_missing_imports = True
|
|
24
|
+
|
|
25
|
+
[mypy-structlog.*]
|
|
26
|
+
ignore_missing_imports = True
|
|
27
|
+
|
|
28
|
+
[mypy-opentelemetry.*]
|
|
29
|
+
ignore_missing_imports = True
|
|
30
|
+
|
|
31
|
+
[mypy-prometheus_client.*]
|
|
32
|
+
ignore_missing_imports = True
|
|
33
|
+
|
|
34
|
+
[mypy-readerwriterlock.*]
|
|
35
|
+
ignore_missing_imports = True
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# (C) 2025 GoodData Corporation
|
|
2
|
+
[project]
|
|
3
|
+
name = "gooddata-flight-server"
|
|
4
|
+
version = "1.53.1.dev1"
|
|
5
|
+
description = "Flight RPC server to host custom functions"
|
|
6
|
+
readme = "README.md"
|
|
7
|
+
license = {text = "MIT"}
|
|
8
|
+
authors = [
|
|
9
|
+
{name = "GoodData", email = "support@gooddata.com"}
|
|
10
|
+
]
|
|
11
|
+
keywords = [
|
|
12
|
+
"gooddata",
|
|
13
|
+
"flight",
|
|
14
|
+
"rpc",
|
|
15
|
+
"flight rpc",
|
|
16
|
+
"custom functions",
|
|
17
|
+
"analytics",
|
|
18
|
+
"headless",
|
|
19
|
+
"business",
|
|
20
|
+
"intelligence",
|
|
21
|
+
"headless-bi",
|
|
22
|
+
"cloud",
|
|
23
|
+
"native",
|
|
24
|
+
"semantic",
|
|
25
|
+
"layer",
|
|
26
|
+
"sql",
|
|
27
|
+
"metrics",
|
|
28
|
+
]
|
|
29
|
+
requires-python = ">=3.9.0"
|
|
30
|
+
dependencies = [
|
|
31
|
+
"dynaconf>=3.1.11,<4.0.0",
|
|
32
|
+
"opentelemetry-api>=1.24.0,<=2.0.0",
|
|
33
|
+
"opentelemetry-sdk>=1.24.0,<=2.0.0",
|
|
34
|
+
"orjson>=3.8.5,<4.0.0",
|
|
35
|
+
"prometheus-client~=0.20.0",
|
|
36
|
+
"pyarrow>=16.1.0",
|
|
37
|
+
"readerwriterlock~=1.0.9",
|
|
38
|
+
"structlog>=24.0.0,<25.0.0",
|
|
39
|
+
]
|
|
40
|
+
classifiers = [
|
|
41
|
+
"Development Status :: 4 - Beta",
|
|
42
|
+
"Environment :: Console",
|
|
43
|
+
"License :: OSI Approved :: MIT License",
|
|
44
|
+
"Programming Language :: Python :: 3.9",
|
|
45
|
+
"Programming Language :: Python :: 3.10",
|
|
46
|
+
"Programming Language :: Python :: 3.11",
|
|
47
|
+
"Programming Language :: Python :: 3.12",
|
|
48
|
+
"Programming Language :: Python :: 3.13",
|
|
49
|
+
"Topic :: Database",
|
|
50
|
+
"Topic :: Scientific/Engineering",
|
|
51
|
+
"Topic :: Software Development",
|
|
52
|
+
"Typing :: Typed",
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
[project.urls]
|
|
56
|
+
Documentation = "https://gooddata-flight-server.readthedocs.io/en/v1.53.1.dev1"
|
|
57
|
+
Source = "https://github.com/gooddata/gooddata-python-sdk"
|
|
58
|
+
|
|
59
|
+
[project.scripts]
|
|
60
|
+
gooddata-flight-server = "gooddata_flight_server.cli:main"
|
|
61
|
+
|
|
62
|
+
[dependency-groups]
|
|
63
|
+
test = [
|
|
64
|
+
"pytest~=8.3.4",
|
|
65
|
+
"pytest-cov~=6.0.0",
|
|
66
|
+
]
|
|
67
|
+
type = [
|
|
68
|
+
"mypy~=1.11.2",
|
|
69
|
+
"pydantic~=2.9.2"
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
[tool.hatch.build.targets.wheel]
|
|
73
|
+
packages = ["src/gooddata_flight_server"]
|
|
74
|
+
|
|
75
|
+
[build-system]
|
|
76
|
+
requires = ["hatchling"]
|
|
77
|
+
build-backend = "hatchling.build"
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
2
|
+
[server]
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
# Flight RPC Setup
|
|
6
|
+
#######################################################################
|
|
7
|
+
|
|
8
|
+
# host to bind Flight RPC server to. Default is 127.0.0.1 - listening on
|
|
9
|
+
# localhost only.
|
|
10
|
+
#
|
|
11
|
+
# use:
|
|
12
|
+
#
|
|
13
|
+
# - 0.0.0.0 - to bind to all addressed = reachable via network
|
|
14
|
+
# - 127.0.0.1 - to bind to localhost only (unreachable via outside network)
|
|
15
|
+
# - custom address to bind to
|
|
16
|
+
#
|
|
17
|
+
# env: GOODDATA_FLIGHT_SERVER__LISTEN_HOST
|
|
18
|
+
listen_host = "127.0.0.1"
|
|
19
|
+
|
|
20
|
+
# port on which the Flight RPC server should listen
|
|
21
|
+
#
|
|
22
|
+
# env: GOODDATA_FLIGHT_SERVER__LISTEN_PORT
|
|
23
|
+
listen_port = 17001
|
|
24
|
+
|
|
25
|
+
# host name to use when sending this server's Flight RPC location to clients.
|
|
26
|
+
# Defaults to current hostname.
|
|
27
|
+
#
|
|
28
|
+
# Advertising different host from the one that the server is bound to is
|
|
29
|
+
# often needed in Dockerized environments.
|
|
30
|
+
#
|
|
31
|
+
# ---
|
|
32
|
+
#
|
|
33
|
+
# Example: you run the server inside Docker on localhost and have port forwarding
|
|
34
|
+
# setup. You want to access the server from your workstation. In this setup,
|
|
35
|
+
# the 'listen_host' is set to "0.0.0.0" (server listens on all interfaces within
|
|
36
|
+
# the container) and the 'advertise_host' is set to "localhost".
|
|
37
|
+
#
|
|
38
|
+
# When you make a GetFlightInfo call to the server (running inside docker), it will
|
|
39
|
+
# generate a Flight accordingly and the returned Locations will again point at
|
|
40
|
+
# "localhost" so the subsequent DoGet call goes again to the Dockerized server.
|
|
41
|
+
#
|
|
42
|
+
# Without the 'advertise_host', the GetFlightInfo would return Location referencing
|
|
43
|
+
# some internal / randomly assigned hostname that is unreachable from your workstation.
|
|
44
|
+
#
|
|
45
|
+
# env: GOODDATA_FLIGHT_SERVER__ADVERTISE_HOST
|
|
46
|
+
advertise_host = "127.0.0.1"
|
|
47
|
+
|
|
48
|
+
# port number to use when sending this server's Flight RPC location to clients.
|
|
49
|
+
# Defaults to value of 'listen_port'.
|
|
50
|
+
#
|
|
51
|
+
# Advertising different port from the one that the server is listening is often
|
|
52
|
+
# needed in environments where port forwarding is in effect.
|
|
53
|
+
#
|
|
54
|
+
# ---
|
|
55
|
+
#
|
|
56
|
+
# Example: you run multiple servers inside Docker on localhost and have port
|
|
57
|
+
# forwarding setup. Each server goes to different port.
|
|
58
|
+
#
|
|
59
|
+
# Analogous to the host example (see above), the Dockerized server needs to send
|
|
60
|
+
# location with port number that can be reached from your workstation.
|
|
61
|
+
#
|
|
62
|
+
# env: GOODDATA_FLIGHT_SERVER__ADVERTISE_PORT
|
|
63
|
+
advertise_port = 17001
|
|
64
|
+
|
|
65
|
+
#######################################################################
|
|
66
|
+
# TLS Setup
|
|
67
|
+
#######################################################################
|
|
68
|
+
|
|
69
|
+
# optionally specify to use TLS; default when not specified is False
|
|
70
|
+
#
|
|
71
|
+
# IMPORTANT: when you turn on TLS, you must also specify at minimum
|
|
72
|
+
# the TLS certificate and TLS private key for the server to use.
|
|
73
|
+
# Additionally, if you use self-signed certificates, you need to
|
|
74
|
+
# also specify the tls_root_certificate.
|
|
75
|
+
#
|
|
76
|
+
# env: GOODDATA_FLIGHT_SERVER__USE_TLS
|
|
77
|
+
# use_tls = false
|
|
78
|
+
|
|
79
|
+
# if you want to use TLS (see 'use_tls' above), then you must specify
|
|
80
|
+
# server's certificate.
|
|
81
|
+
#
|
|
82
|
+
# This is supposed to be a PEM encoded X.509 certificate identifying
|
|
83
|
+
# your server.
|
|
84
|
+
#
|
|
85
|
+
# You can inline the certificate value into this setting, or you can
|
|
86
|
+
# specify file where the certificate resides.
|
|
87
|
+
#
|
|
88
|
+
# To specify certificate file, code the value of this setting as
|
|
89
|
+
# `@/absolute/path/to/cert`
|
|
90
|
+
#
|
|
91
|
+
# env: GOODDATA_FLIGHT_SERVER__TLS_CERTIFICATE
|
|
92
|
+
# tls_certificate = '''...'''
|
|
93
|
+
|
|
94
|
+
# if you want to use TLS (see 'use_tls' above), then you must specify
|
|
95
|
+
# the server's private key.
|
|
96
|
+
#
|
|
97
|
+
# This is supposed to be PEM encoded X.509 private key. Similar to
|
|
98
|
+
# the certificate, you can also use the `@/absolute/path/to/cert`
|
|
99
|
+
# notation to make server load the certificate from some file.
|
|
100
|
+
#
|
|
101
|
+
# IMPORTANT: never commit config files containing inlined secrets
|
|
102
|
+
# such as the private key into VCS. You can leverage the server's
|
|
103
|
+
# ability to combine config from multiple files: have one file
|
|
104
|
+
# without secrets and commit that to VCS if you so desire. The other
|
|
105
|
+
# config file with secrets should be outside of VCS.
|
|
106
|
+
#
|
|
107
|
+
# env: GOODDATA_FLIGHT_SERVER__TLS_PRIVATE_KEY
|
|
108
|
+
# tls_private_key = '''...'''
|
|
109
|
+
|
|
110
|
+
# if you use mTLS and have self-signed certificates, then you must
|
|
111
|
+
# also include the X.509 certificate of your CA that signed them.
|
|
112
|
+
#
|
|
113
|
+
# Again, you can inline the certificate in PEM encoding right here
|
|
114
|
+
# into this setting, or you can use the '@/absolute/path/to/ca-cert'
|
|
115
|
+
# notation.
|
|
116
|
+
#
|
|
117
|
+
# env: GOODDATA_FLIGHT_SERVER__TLS_ROOT_CERTIFICATE
|
|
118
|
+
# tls_root_certificate = '''...'''
|
|
119
|
+
|
|
120
|
+
#######################################################################
|
|
121
|
+
#
|
|
122
|
+
#######################################################################
|
|
123
|
+
|
|
124
|
+
# specify authentication method to use. can be one of 'none' or 'token'.
|
|
125
|
+
#
|
|
126
|
+
# if you do not include this option, then the server will not do
|
|
127
|
+
# any authentication. This is dangerous if your server is listening
|
|
128
|
+
# on interfaces that are reachable from the public network.
|
|
129
|
+
#
|
|
130
|
+
# if you specify the 'token' method, then the default strategy
|
|
131
|
+
# for verifying tokens is the 'EnumeratedTokenVerification'. For this
|
|
132
|
+
# to work, you need to specify one or more valid tokens that the
|
|
133
|
+
# client is expected to send. See the end of this file on how to
|
|
134
|
+
# do this.
|
|
135
|
+
#
|
|
136
|
+
# Alternatively, you can implement your own strategy for verifying
|
|
137
|
+
# tokens. See the option below.
|
|
138
|
+
#
|
|
139
|
+
# env: GOODDATA_FLIGHT_SERVER__AUTHENTICATION_METHOD
|
|
140
|
+
authentication_method = "none"
|
|
141
|
+
|
|
142
|
+
# Specify strategy to use for verifying tokens.
|
|
143
|
+
#
|
|
144
|
+
# The default strategy is 'EnumeratedTokenVerification' which expects
|
|
145
|
+
# that client sends a token that is included in a list of allowed
|
|
146
|
+
# tokens. See the end of this file for example how to define those
|
|
147
|
+
# tokens.
|
|
148
|
+
#
|
|
149
|
+
# To implement your own token verification strategy, you need to
|
|
150
|
+
# implement your own subclass of 'TokenVerificationStrategy' and
|
|
151
|
+
# then modify this setting to provide module name that contains
|
|
152
|
+
# that implementation.
|
|
153
|
+
#
|
|
154
|
+
# For example if the full path to class implementing your strategy
|
|
155
|
+
# is my_server.auth.custom.MyCustomStrategy, then the value
|
|
156
|
+
# of the 'token_verification' should be 'my_server.auth.custom'.
|
|
157
|
+
#
|
|
158
|
+
# Upon startup, the server will try to dynamically import and
|
|
159
|
+
# load your implementation of TokenVerificationStrategy from the
|
|
160
|
+
# specified module.
|
|
161
|
+
#
|
|
162
|
+
# env: GOODDATA_FLIGHT_SERVER__TOKEN_VERIFICATION
|
|
163
|
+
# token_verification = "EnumeratedTokenVerification"
|
|
164
|
+
|
|
165
|
+
# Optionally specify header name that is expected to carry the
|
|
166
|
+
# token.
|
|
167
|
+
#
|
|
168
|
+
# If not specified, the token is expected to come in a HTTP-like
|
|
169
|
+
# convention: the 'authorization' header (must be lower-case) and
|
|
170
|
+
# the value of 'Bearer <token>' where <token> is the value token
|
|
171
|
+
# itself.
|
|
172
|
+
#
|
|
173
|
+
# env: GOODDATA_FLIGHT_SERVER__TOKEN_HEADER_NAME
|
|
174
|
+
# token_header_name = "x-custom-header-with-token"
|
|
175
|
+
|
|
176
|
+
#######################################################################
|
|
177
|
+
# Task Handling
|
|
178
|
+
#######################################################################
|
|
179
|
+
|
|
180
|
+
# Number of threads available for tasks which generate flights or
|
|
181
|
+
# flight listing. Default is 32.
|
|
182
|
+
#
|
|
183
|
+
# Each GetFlightInfo request that generates a flight delegates this
|
|
184
|
+
# to a task. The task executes in a thread pool of this size.
|
|
185
|
+
#
|
|
186
|
+
# Default is 32.
|
|
187
|
+
#
|
|
188
|
+
# env: GOODDATA_FLIGHT_SERVER__TASK_THREADS
|
|
189
|
+
# task_threads = 32
|
|
190
|
+
|
|
191
|
+
# Number of threads that will be used when closing used / unneeded
|
|
192
|
+
# task results.
|
|
193
|
+
#
|
|
194
|
+
# Default is 2.
|
|
195
|
+
#
|
|
196
|
+
# env: GOODDATA_FLIGHT_SERVER__TASK_CLOSE_THREADS
|
|
197
|
+
# task_close_threads = 2
|
|
198
|
+
|
|
199
|
+
# Number of seconds a task result will be retained by the server.
|
|
200
|
+
#
|
|
201
|
+
# In other words, when GetFlightInfo uses task to generate the
|
|
202
|
+
# flight, the result will be kept by the server for this number
|
|
203
|
+
# of seconds - the client must come within this timeframe to pick
|
|
204
|
+
# the data using DoGet.
|
|
205
|
+
#
|
|
206
|
+
# env: GOODDATA_FLIGHT_SERVER__TASK_RESULT_TTL_SEC
|
|
207
|
+
# task_result_ttl_sec = 60
|
|
208
|
+
|
|
209
|
+
#######################################################################
|
|
210
|
+
# Server Infrastructure & Maintenance
|
|
211
|
+
#######################################################################
|
|
212
|
+
|
|
213
|
+
# host to bind prometheus metrics endpoint; disabled by default
|
|
214
|
+
#
|
|
215
|
+
# use:
|
|
216
|
+
#
|
|
217
|
+
# - 0.0.0.0 - to bind to all addressed
|
|
218
|
+
# - 127.0.0.1 - to bind to localhost only (unreachable via outside network)
|
|
219
|
+
# - custom address to bind to
|
|
220
|
+
#
|
|
221
|
+
# if not specified, the prometheus metrics endpoint will not be started
|
|
222
|
+
#
|
|
223
|
+
# env: GOODDATA_FLIGHT_SERVER__METRICS_HOST
|
|
224
|
+
# metrics_host = "0.0.0.0"
|
|
225
|
+
|
|
226
|
+
# port for prometheus metrics endpoint; default is 17101
|
|
227
|
+
#
|
|
228
|
+
# will only be used if `metrics_host` is specified
|
|
229
|
+
#
|
|
230
|
+
# env: GOODDATA_FLIGHT_SERVER__METRICS_PORT
|
|
231
|
+
# metrics_port = 17101
|
|
232
|
+
|
|
233
|
+
# host to bind health check endpoint; disabled by default
|
|
234
|
+
#
|
|
235
|
+
# use:
|
|
236
|
+
#
|
|
237
|
+
# - 0.0.0.0 - to bind to all addressed
|
|
238
|
+
# - 127.0.0.1 - to bind to localhost only (unreachable via outside network)
|
|
239
|
+
# - custom address to bind to
|
|
240
|
+
#
|
|
241
|
+
# if not specified, the health check endpoint will not be started
|
|
242
|
+
#
|
|
243
|
+
# env: GOODDATA_FLIGHT_SERVER__HEALTH_CHECK_HOST
|
|
244
|
+
# health_check_host = "0.0.0.0"
|
|
245
|
+
|
|
246
|
+
# port for health check endpoint; default is 8877
|
|
247
|
+
#
|
|
248
|
+
# will only be used if `health_check_host` is specified
|
|
249
|
+
#
|
|
250
|
+
# env: GOODDATA_FLIGHT_SERVER__HEALTH_CHECK_PORT
|
|
251
|
+
# health_check_port = 8877
|
|
252
|
+
|
|
253
|
+
# optionally specify interval, in seconds, of calls to malloc_trim - this
|
|
254
|
+
# helps to release unused memory back to the system. Default is 30 seconds.
|
|
255
|
+
#
|
|
256
|
+
# especially useful in memory constrained and memory-limited environments.
|
|
257
|
+
#
|
|
258
|
+
# env: GOODDATA_FLIGHT_SERVER__MALLOC_TRIM_INTERVAL_SEC
|
|
259
|
+
# malloc_trim_interval_sec = 30
|
|
260
|
+
|
|
261
|
+
# optionally specify key name under which the log event name should appear
|
|
262
|
+
# in the structured logs. Default is 'event'
|
|
263
|
+
#
|
|
264
|
+
# you may want to override this in case you want to align the event's key
|
|
265
|
+
# name with the rest of your environment
|
|
266
|
+
#
|
|
267
|
+
# env: GOODDATA_FLIGHT_SERVER__LOG_EVENT_KEY_NAME
|
|
268
|
+
# log_event_key_name = "event"
|
|
269
|
+
|
|
270
|
+
# optionally specify mapping for telemetry (tracing) key names that will appear
|
|
271
|
+
# in structured logs. by default, server writes trace information into 'trace_id',
|
|
272
|
+
# 'span_id' and 'parent_span_id'
|
|
273
|
+
#
|
|
274
|
+
# you may want to override these in case you want to align those logs key names
|
|
275
|
+
# with the rest of your enviornment
|
|
276
|
+
#
|
|
277
|
+
# env: GOODDATA_FLIGHT_SERVER__LOG_TRACE_KEYS
|
|
278
|
+
# log_trace_keys = { "trace_id" = "trace_id", "span_id" = "trace_id", "parent_span_id" = "parent_span_id" }
|
|
279
|
+
|
|
280
|
+
# optionally enable exports of OpenTelemetry tracing. Default is no exports
|
|
281
|
+
# which also means most of the tracing code and instrumentation will be noop.
|
|
282
|
+
#
|
|
283
|
+
# Allowed values are: zipkin, otlp-grpc, otlp-http or console (for debug)
|
|
284
|
+
#
|
|
285
|
+
# IMPORTANT: If you want to enable the trace exports, you must install one
|
|
286
|
+
# the appropriate OpenTelemetry exporter package yourself and then configure
|
|
287
|
+
# the exporter using the appropriate environment variables (these are typically
|
|
288
|
+
# documented by the exporter)
|
|
289
|
+
#
|
|
290
|
+
# env: GOODDATA_FLIGHT_SERVER__OTEL_EXPORTER_TYPE
|
|
291
|
+
otel_exporter_type = "none"
|
|
292
|
+
|
|
293
|
+
# optionally specify OpenTelemetry service name to associate with the server's
|
|
294
|
+
# resource.
|
|
295
|
+
#
|
|
296
|
+
# If you do not specify the service name, then the tracing infrastructure and
|
|
297
|
+
# instrumentation will be no-op.
|
|
298
|
+
#
|
|
299
|
+
# IMPORTANT: if you want to enable and export OpenTelemetry tracing, then you
|
|
300
|
+
# must specify both the `otel_exporter_type` and this option.
|
|
301
|
+
#
|
|
302
|
+
# env: GOODDATA_FLIGHT_SERVER__OTEL_SERVICE_NAME
|
|
303
|
+
# otel_service_name = "your-service-name"
|
|
304
|
+
|
|
305
|
+
# optionally specify OpenTelemetry namespace to associate with this server's resource.
|
|
306
|
+
#
|
|
307
|
+
# Default is no namespace.
|
|
308
|
+
#
|
|
309
|
+
# env: GOODDATA_FLIGHT_SERVER__OTEL_SERVICE_NAMESPACE
|
|
310
|
+
# otel_service_namespace = "your-namespace"
|
|
311
|
+
|
|
312
|
+
# optionally specify OpenTelemetry service instance id to associate with this server's
|
|
313
|
+
# resource.
|
|
314
|
+
#
|
|
315
|
+
# Usually, this is a unique identifier of the running server instance. In environments
|
|
316
|
+
# such as k8s, you typically want to associate the instance id to pod name. In other
|
|
317
|
+
# environments, it may be the hostname.
|
|
318
|
+
#
|
|
319
|
+
# Default is to use current hostname.
|
|
320
|
+
#
|
|
321
|
+
# env: GOODDATA_FLIGHT_SERVER__OTEL_SERVICE_INSTANCE_ID
|
|
322
|
+
# otel_service_instance_id = "your-service-instance-id"
|
|
323
|
+
|
|
324
|
+
# optionally specify whether OpenTelemetry integration within the server should look
|
|
325
|
+
# for, extract and use an OpenTelemetry context coming through the Flight RPC
|
|
326
|
+
# request headers.
|
|
327
|
+
#
|
|
328
|
+
# When this option is enabled, the code will use OpenTelemetry's context
|
|
329
|
+
# propagation `extract` method to obtain the context from Flight RPC request headers. This
|
|
330
|
+
# context will then be used when creating OpenTelemetry span representing the Flight
|
|
331
|
+
# RPC call.
|
|
332
|
+
#
|
|
333
|
+
# In simple words:
|
|
334
|
+
#
|
|
335
|
+
# - IF your server is configured to export traces to same backend where your server's clients
|
|
336
|
+
# also export their traces AND the clients inject the trace context into the Flight RPC headers AND
|
|
337
|
+
# you turn this option on, THEN you will be able to correlate all calls under one trace ID.
|
|
338
|
+
#
|
|
339
|
+
# - ELSE, you should keep this turned off; each Flight RPC request to your server will create
|
|
340
|
+
# a new trace ID.
|
|
341
|
+
#
|
|
342
|
+
# Default is false.
|
|
343
|
+
#
|
|
344
|
+
# env: GOODDATA_FLIGHT_SERVER__OTEL_EXTRACT_CONTEXT
|
|
345
|
+
# otel_extract_context = false
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
2
|
+
import pyarrow.flight
|
|
3
|
+
from gooddata_flight_server.errors.error_code import ErrorCode
|
|
4
|
+
from gooddata_flight_server.errors.error_info import ErrorInfo
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def assert_error_code(code: int, err: pyarrow.flight.FlightError):
|
|
8
|
+
info = ErrorInfo.maybe_from_pyarrow_error(err)
|
|
9
|
+
assert info is not None, "The error does not contain the ErrorInfo."
|
|
10
|
+
|
|
11
|
+
if code != info.code:
|
|
12
|
+
raise AssertionError(f"Expected error code '{ErrorCode.name(code)}'. Got: '{ErrorCode.name(info.code)}'")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
The matrix has you :D
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
2
|
+
[server]
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
# Flight RPC Setup
|
|
6
|
+
#######################################################################
|
|
7
|
+
|
|
8
|
+
listen_host = "127.0.0.1"
|
|
9
|
+
listen_port = 17001
|
|
10
|
+
advertise_host = "127.0.0.1"
|
|
11
|
+
advertise_port = 17001
|
|
12
|
+
|
|
13
|
+
#######################################################################
|
|
14
|
+
# Task Handling
|
|
15
|
+
#######################################################################
|
|
16
|
+
|
|
17
|
+
task_threads = 32
|
|
18
|
+
|
|
19
|
+
#######################################################################
|
|
20
|
+
# Server Infrastructure & Maintenance
|
|
21
|
+
#######################################################################
|
|
22
|
+
|
|
23
|
+
metrics_host = "0.0.0.0"
|
|
24
|
+
metrics_port = 17101
|
|
25
|
+
health_check_host = "0.0.0.0"
|
|
26
|
+
health_check_port = 8877
|
|
27
|
+
malloc_trim_interval_sec = 30
|
|
28
|
+
log_event_key_name = "event"
|
|
29
|
+
log_trace_keys = { "trace_id" = "trace_id", "span_id" = "trace_id", "parent_span_id" = "parent_span_id" }
|
|
30
|
+
otel_exporter_type = "otlp-grpc"
|
|
31
|
+
otel_service_name = "your-service-name"
|
|
32
|
+
otel_service_namespace = "your-namespace"
|
|
33
|
+
otel_service_instance_id = "your-service-instance-id"
|
|
34
|
+
otel_extract_context = true
|