The eea.api.dataconnector is a Plone add-on.
Upgrade
12.0 (Breaking) - Logic for plotly visualization was moved to eea.plotly - Install eea.plotly >= 1.x - Use volto-plotlycharts >= 12.x - Enable eea.plotly add-on - Activate EEA-Viz_Plotly behavior - Run any pending upgrades on eea.api.dataconnector
8.0 - Endpoints for @tableau-visualization and @map-visualization are removed. Use volto-eea-map@^3.0.0 and volto-tableau@^7.0.0
Main features
1. Easy to install/uninstall via Site Setup > Add-ons 2. 3.
Connector-data response contract
Successful @connector-data responses expose provider data as an object with results and metadata fields. results is an empty array when no rows exist; metadata remains an object and may contain provider information such as readme. The minimal empty shape is:
{
"results": [],
"metadata": {}
}
The response payload is public request-identity metadata, not diagnostic output. volto-datablocks uses its canonical data_query and form to reuse data preloaded during server-side rendering. Authentication credentials must be carried in request headers or cookies and must never be passed as connector form or data-query values.
Virtual pages may attach a transient connector_data preload produced by this package. It is accepted only from the virtual object itself and must match the complete @connector-data envelope: @id, path, data and payload. The envelope is returned unchanged so its payload continues to describe the exact request that produced its data.
Expanded connector data is memoized by provider path, request identity, and provider content revision. Editing a provider configuration or replacing its file therefore changes the cache identity immediately. Changes in external SQL data are bounded by the global CACHE_TTL configured by eea.volto.policy.
Install
Add eea.api.dataconnector to your eggs section in your buildout and re-run buildout:
[buildout] eggs += eea.api.dataconnector
You can download a sample buildout from:
Or via docker:
$ docker run --rm -p 8080:8080 -e ADDONS="eea.api.dataconnector" plone
Install eea.api.dataconnector within Site Setup > Add-ons
Buildout installation
Source code
Eggs repository
Plone versions
It has been developed and tested for Plone 4 and 5. See buildouts section above.
How to contribute
Copyright and license
eea.api.dataconnector (the Original Code) is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
The Initial Owner of the Original Code is European Environment Agency (EEA). Portions created by Eau de Web are Copyright (C) 2009 by European Environment Agency. All Rights Reserved.
Funding
EEA - European Environment Agency (EU)
Secret Scanning
This repository uses the Betterleaks GitHub Action to scan the current repository content on every push and pull request. The scan uses the rules in .gitleaks.toml and uploads a betterleaks-report artifact when a finding is detected.
If the optional SMTP secrets are configured, failed scans also send an email to the last commit committer. The workflow expects these repository or organization secrets:
SMTP_URL
SMTP_PORT (optional, defaults to 25)
SMTP_EMAIL
SMTP_PASSWORD (optional if the SMTP server does not require authentication)
Port 465 is sent with direct TLS; other ports use the default SMTP handshake. The email includes a short finding summary from the redacted Betterleaks report, including the redacted matched line from each finding.
There are three common outcomes:
Everything is OK. The Betterleaks / Scan for secrets check is green and no action is needed. Regular references to runtime values are OK, for example:
token_from_cookie = request.cookies.get("auth_token")A real secret was found. The check is red and the workflow log asks you to download the betterleaks-report artifact. Open the artifact from the GitHub Actions run and check the reported file, line and rule. Remove the committed value, move it to the proper secret store, and rotate it if it was exposed. A report entry looks like this:
{ "RuleID": "secret-literal-assignment", "File": "src/config.py", "StartLine": 12, "Secret": "[REDACTED]" }The finding is a false positive. Keep the value only if it is clearly not sensitive, such as a test fixture, placeholder, or public example. Add betterleaks:allow on the same line and include a short explanation in the pull request:
test_password = "admin" #betterleaks:allow
Do not add betterleaks:allow to real credentials.
Changelog
13.0 - (2026-08-18)
Fix: Invalidate memoized connector data when provider content changes; TTL continues to bound staleness of external data sources. [razvanMiu]
Fix: normalize empty connector-data responses and validate virtual-page preload envelopes. [razvanMiu]
Change: document connector payload as public SSR request identity metadata. [razvanMiu]
Change: Move the global plone.memoize cache policy to eea.volto.policy. [razvanMiu]
12.9 - (2026-07-13)
Change: fix: SonarQube report - refs #305404 [avoinea]
12.8 - (2026-06-09)
Fix: return 404 from @connector-data for content without a connector data provider instead of raising ValueError [dobri1408]
12.7 - (2026-05-08)
Fix: list index out of range [avoinea - sentry #420262]
12.6 - (2026-04-14)
Change: Add unit tests for queryparser and queryfilter modules [avoinea]
12.5 - (2025-12-11)
Change: Release [laszlocseh]
12.4 - (2025-11-12)
Change: Replace Python linting to ruff [mihaidobrescu1111 = refs #286821]
Change: Add plone6 tests [mihaidobrescu1111 = refs #293593]
12.3 - (2025-08-27)
Fix: Broken release
12.2 - (2025-08-27)
Change: fix csv file data decoding [razvanMiu]
12.1 - (2025-06-10)
Change: Add upgrade steps for version 12.x [razvanMiu]
12.0 - (2025-04-14)
Change: Upgrade step to transform Visualizations to use resolveuid in providerurl [dobri1408 - refs #279158]
Breaking: Refactor Visualisation [razvanMiu - refs ]
11.5 - (2025-03-06)
Change: Don’t remove embed_content block data [razvanMiu]
11.4 - (2025-02-17)
Change: Develop [tiberiuichim]
11.3 - (2025-01-31)
Change: Disable transforms when serving html for flourish [tiberiuichim]
11.2 - (2025-01-30)
Change: Upgrade step to make provider url use resolve uid - refs #279158 [avoinea]
11.1 - (2024-12-06)
Change: Add serializer/deserializer for JSONField, ref #281589 [razvanMiu]
11.0 - (2024-10-24)
Change: Refactor Visualisation serializers [razvanMiu - refs #274326]
10.6 - (2024-10-21)
Change: Add embed_content block serializer [razvanMiu - refs #274326]
10.5 - (2024-09-27)
Change: Disable Diazo Theming for flourish browser view [@tiberiuichim]
10.4 - (2024-09-06)
Change: Develop [iugin]
10.3 - (2024-06-11)
Change: Release [claudiaifrim]
10.2 - (2024-05-08)
Change: Release [claudiaifrim]
10.1 - (2024-05-08)
Change: Release [claudiaifrim]
9.1 - (2024-03-18)
Change: feat: add filters to plotly visualizations [razvanMiu]
9.0 - (2024-01-12)
Change: feat: improve plotlychart visualization serialization [razvanMiu]
8.5 - (2024-01-09)
Change: fix: don’t break visualizations if selected content is not a viz [razvanMiu]
8.4 - (2023-12-15)
Bug fix: Add upgrade step to fix plotly with BOM character ufeff [avoinea - refs #262155]
8.3 - (2023-12-08)
Change: fix - default values [claudiaifrim]
8.2 - (2023-12-07)
Feature: Add custom add permissions for EEA-Viz content-types [avoinea - refs #257682]
8.1 - (2023-11-24)
Change: map-interactive content type [claudiaifrim]
8.0 - (2023-11-22)
Change: (feat): Serializer and deserializer for embed tableau and embed eea map [razvanMiu]
7.0 - (2023-11-17)
Change: feat: serialize embed_visualization and new embed_map [razvanMiu]
6.3 - (2023-10-31)
Change: 257682 toolbar [razvanMiu]
6.2 - (2023-10-06)
Change: elasticconnectors support second level aggregations [andreiggr]
6.1 - (2023-09-28)
Change: Make figure note available for embed blocks [andreiggr]
6.0 - (2023-09-27)
Change: Add Figure Note behavior [andreiggr refs #257682]
5.3 - (2023-08-31)
Change: Add ElasticConnector CT [andreiggr]
5.2 - (2023-06-19)
Change: Tableau endpoint [andreiggr]
5.1 - (2023-06-16)
Change: feat: include data_provenance with map viz data [razvanMiu]
5.0 - (2023-06-13)
Change: refact: change field name for tableau visualization [razvanMiu]
4.6 - (2023-05-18)
Bug: updated schema definition with default value [alecghica refs #252894]
4.5 - (2023-05-15)
Bug: updated schema definition [alecghica refs #252894]
4.4 - (2023-05-09)
Change: add eea core metadata to visualization response [razvanMiu]
4.3 - (2023-04-26)
Fix: fixed profile import for the File content type [alecghica refs #250426]
4.2 - (2023-04-25)
Change: added needed behaviour to the File content type [andreiggr refs #250426]
4.1 - (2023-04-19)
Change: Use SQLServer parser for queries [iulianpetchesi refs #250426]
4.0 - (2023-04-06)
Change: Change deprecated moz-sql-parser dependency to mo-sql-parsing [iulianpetchesi refs #250426]
3.4 - (2023-03-21)
Change: Add missing dependency [alecghica]
3.3 - (2023-03-21)
Change: Removed the dependency to eea.restapi [alecghica]
3.2 - (2023-03-21)
Change: updated classifiers [alecghica refs #250426]
3.1 - (2022-11-28)
Bug fix: add missing file [erral]
Feature: registered “Tableau visualization” content-type and behavior. [razvanMiu]
Feature: registered “Discodata Connector” and “Visualization” content-types. [alecghica refs #153056]
3.0 - (2022-10-05)
Change: Fix query parser [razvanMiu]
2.9 - (2022-09-16)
Change: Don’t use collate for ‘in’ and ‘nin’ sql operations [razvanMiu]
2.8 - (2022-08-22)
Change: Allow extra conditions [razvanMiu]
2.7 - (2022-08-12)
Change: Develop [andreiggr]
2.6 - (2022-08-12)
Change: Arcgis Map Visualization Content-type [andreiggr]
2.5 - (2022-07-26)
Change: Set default value for data_query [razvanMiu]
2.4 - (2022-06-22)
Change: Remove python version requirement [razvanMiu]
2.3 - (2022-03-10)
Change: Fix edge case for parsing query [razvanMiu]
2.2 - (2022-02-03)
Change: Filter csv by data_query [razvanMiu]
2.1 - (2022-01-31)
Change: Patch #1 [razvanMiu]
2.0 - (2022-01-31)
Change: Removed caching data in memcached for now [razvanMiu]
1.9 - (2022-01-31)
Change: Improved connectors [razvanMiu]
1.8 - (2021-11-25)
Change: Modified behavior name and redefined some imports [eugentripon refs #139888]
1.7 - (2021-11-22)
Change: Moved dataconnector code from eea.restapi to here [eugentripon refs #139888]
1.6 - (2021-10-06)
Change: Fix history [iulianpetchesi refs #139888]
1.5 - (2021-10-04)
Change: Use ‘*’ to delimit the table from the parameter [razvanMiu]
1.4 - (2021-06-28)
Change: Develop [razvanMiu]
1.3 - (2021-06-23)
Change: Removed comments from query before parsing [razvanMiu]
1.2 - (2021-04-26)
Change: Set collation for where clauses [razvanMiu]
1.1 - (2021-04-19)
Change: Develop [tiberiuichim]
1.0 - (2021-02-15)
Change: Automated release [valentinab25]
1.0 - (2021-02-15)
Initial release. [eea]
Release files for eea.api.dataconnector 13.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| eea_api_dataconnector-13.0.tar.gz | 58.3 kB | Details |
Release files / eea_api_dataconnector-13.0.tar.gz
| Download URL | eea_api_dataconnector-13.0.tar.gz |
|---|---|
| Size | 58.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b431194a34a391d956aad4bc8270e03d32509b15b4f573123a9adac55d717cb2
|
|
BLAKE2b-256 checksum How to use checksums |
568d1b404fce5c78adab8a396f0ba27db25b0e84a97acae6f806a49f6bb67399
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|