influxdata-plugin-utils 0.2.0__tar.gz → 0.3.1__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.
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/CHANGELOG.md +31 -1
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/PKG-INFO +2 -2
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/pyproject.toml +1 -1
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/__init__.py +1 -1
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/config.py +13 -2
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/.gitignore +0 -0
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/LICENSE-APACHE +0 -0
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/LICENSE-MIT +0 -0
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/README.md +0 -0
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/cache.py +0 -0
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/introspection.py +0 -0
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/parsing.py +0 -0
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/py.typed +0 -0
- {influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/write.py +0 -0
|
@@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.3.1] - 2026-08-03
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- No functional changes. Released to exercise the tag-triggered release
|
|
15
|
+
automation added in
|
|
16
|
+
[#137](https://github.com/influxdata/influxdb3_plugins/pull/137), which
|
|
17
|
+
builds release notes from this file and publishes a GitHub release
|
|
18
|
+
alongside the PyPI upload.
|
|
19
|
+
|
|
20
|
+
## [0.3.0] - 2026-07-31
|
|
21
|
+
|
|
22
|
+
### Security
|
|
23
|
+
|
|
24
|
+
- `config.load_plugin_config` — disable dynaconf's `@` token substitution
|
|
25
|
+
(`@read_file`, `@format`, `@jinja`, `@get`, and ~30 others) by constructing
|
|
26
|
+
the settings object with `AUTO_CAST_FOR_DYNACONF=False`. Previously any
|
|
27
|
+
string value beginning with `@` was evaluated, so an untrusted value from an
|
|
28
|
+
HTTP request body could read the server's files or environment variables
|
|
29
|
+
(for example `@read_file /etc/passwd` or `@format {env[SECRET]}`). Values are
|
|
30
|
+
now always treated as literal data. See
|
|
31
|
+
[#134](https://github.com/influxdata/influxdb3_plugins/issues/134).
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- Pin `dynaconf>=3.2,<4` so a future major release cannot silently re-enable
|
|
36
|
+
token substitution.
|
|
37
|
+
|
|
10
38
|
## [0.2.0] - 2026-07-12
|
|
11
39
|
|
|
12
40
|
### Added
|
|
@@ -39,6 +67,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
39
67
|
- `write` — `build_line`, `build_line_typed`, `add_field_with_type`,
|
|
40
68
|
`write_data` (batching + retry), `BatchLines`.
|
|
41
69
|
|
|
42
|
-
[Unreleased]: https://github.com/influxdata/influxdb3_plugins/compare/utils-v0.
|
|
70
|
+
[Unreleased]: https://github.com/influxdata/influxdb3_plugins/compare/utils-v0.3.1...HEAD
|
|
71
|
+
[0.3.1]: https://github.com/influxdata/influxdb3_plugins/compare/utils-v0.3.0...utils-v0.3.1
|
|
72
|
+
[0.3.0]: https://github.com/influxdata/influxdb3_plugins/compare/utils-v0.2.0...utils-v0.3.0
|
|
43
73
|
[0.2.0]: https://github.com/influxdata/influxdb3_plugins/compare/utils-v0.1.0...utils-v0.2.0
|
|
44
74
|
[0.1.0]: https://github.com/influxdata/influxdb3_plugins/releases/tag/utils-v0.1.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: influxdata-plugin-utils
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Shared helpers for InfluxDB 3 plugins.
|
|
5
5
|
Project-URL: Homepage, https://github.com/influxdata/influxdb3_plugins
|
|
6
6
|
Project-URL: Repository, https://github.com/influxdata/influxdb3_plugins
|
|
@@ -12,7 +12,7 @@ Keywords: influxdb,influxdb3,plugins
|
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
14
|
Requires-Python: >=3.11
|
|
15
|
-
Requires-Dist: dynaconf
|
|
15
|
+
Requires-Dist: dynaconf<4,>=3.2
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
|
|
18
18
|
# influxdata-plugin-utils
|
|
@@ -12,7 +12,7 @@ license = "MIT OR Apache-2.0"
|
|
|
12
12
|
license-files = ["LICENSE-MIT", "LICENSE-APACHE"]
|
|
13
13
|
authors = [{ name = "InfluxData" }]
|
|
14
14
|
keywords = ["influxdb", "influxdb3", "plugins"]
|
|
15
|
-
dependencies = ["dynaconf>=3.2"]
|
|
15
|
+
dependencies = ["dynaconf>=3.2,<4"]
|
|
16
16
|
classifiers = [
|
|
17
17
|
"Programming Language :: Python :: 3.11",
|
|
18
18
|
"Operating System :: OS Independent",
|
|
@@ -4,6 +4,11 @@ Loads a plugin's TOML config (resolved via the plugin directory), merges
|
|
|
4
4
|
environment variables and engine-supplied ``args``, and validates the result.
|
|
5
5
|
dynaconf is an implementation detail and must not leak into plugin code beyond
|
|
6
6
|
the re-exported ``Validator``.
|
|
7
|
+
|
|
8
|
+
All values are treated as literal data. dynaconf's ``@`` token substitution
|
|
9
|
+
(``@read_file``, ``@format``, ``@get``, ...) is disabled so that a value
|
|
10
|
+
beginning with ``@`` is never evaluated against the server's filesystem or
|
|
11
|
+
environment; see https://github.com/influxdata/influxdb3_plugins/issues/134.
|
|
7
12
|
"""
|
|
8
13
|
|
|
9
14
|
import os
|
|
@@ -104,8 +109,14 @@ def load_plugin_config(
|
|
|
104
109
|
with open(resolve_path(config_file_path), "rb") as config_file:
|
|
105
110
|
layers.update(tomllib.load(config_file))
|
|
106
111
|
|
|
107
|
-
# loaders=[] disables the DYNACONF_* env loader; env is read only via
|
|
108
|
-
|
|
112
|
+
# loaders=[] disables the DYNACONF_* env loader; env is read only via
|
|
113
|
+
# env_keys. AUTO_CAST_FOR_DYNACONF=False disables dynaconf's "@" token
|
|
114
|
+
# substitution (@read_file, @format, @jinja, @get, ... — ~30 tokens, each
|
|
115
|
+
# beginning with "@"). Without it, any string value that begins with "@" is
|
|
116
|
+
# evaluated instead of stored as data, so an untrusted value arriving in an
|
|
117
|
+
# HTTP request body could read the server's files or environment variables.
|
|
118
|
+
# See https://github.com/influxdata/influxdb3_plugins/issues/134.
|
|
119
|
+
settings = Dynaconf(loaders=[], AUTO_CAST_FOR_DYNACONF=False)
|
|
109
120
|
settings.update(layers)
|
|
110
121
|
if validators:
|
|
111
122
|
settings.validators.register(*validators)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/cache.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/py.typed
RENAMED
|
File without changes
|
{influxdata_plugin_utils-0.2.0 → influxdata_plugin_utils-0.3.1}/src/influxdata_plugin_utils/write.py
RENAMED
|
File without changes
|