Claude Code
925e20bb04
fix(odps): address review feedback - security, recursion, typing, tests
...
- Move security check before ODPS partition detection (auth before backend calls)
- Wrap is_odps_partitioned_table in try/except with warning log and fallback
- Replace OdpsBaseEngineSpec.get_table_metadata body with NotImplementedError
- Fix select_star signature: engine: Engine -> dialect: Dialect (matches base)
- Update Optional[X] -> X | None for modern Python typing
- Remove broken __eq__ that violated frozen dataclass hash contract
- Fix Partition docstring typos and __str__ description
- Add warning log when ODPS URI does not match expected pattern
- Add tests/unit_tests/db_engine_specs/test_odps.py with 7 unit tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-11 14:00:48 -07:00
Evan Rusackas
23b8d323a3
fix(odps): make pyodps import lazy to prevent CI failures
...
Move the `from odps import ODPS` import from module level to inside
the `is_odps_partitioned_table` method where it is used, wrapped in
try/except ImportError. Also move the `OdpsEngineSpec` import in
`databases/api.py` to be lazy. Remove pyodps from base requirements
since it is an optional dependency (like trino, bigquery, etc).
This prevents ModuleNotFoundError when pyodps is not installed, which
was causing all CI tests to fail with "Failed to create app".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 13:56:05 -07:00
Evan Rusackas
a1bf361fe2
fix: ODPS (MaxCompute) data source table preview failed
...
When using the ODPS (MaxCompute) data source, previewing partitioned
tables in SQLLab would fail because ODPS requires a partition to be
specified for partition tables.
This PR adds ODPS-specific handling:
- New OdpsEngineSpec with partition detection support
- Modified select_star to add partition filter for ODPS partition tables
- New Partition dataclass in sql/parse.py
- New is_odps_partitioned_table method in DatabaseDAO
Closes #32301
Co-Authored-By: zhutong6688 <zhutong66@163.com >
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-11 13:55:33 -07:00
Vitor Avila
8c9efe5659
feat: support for import/export masked_encrypted_extra (backend) ( #38077 )
2026-03-04 11:26:28 -08:00
isaac-jaynes-imperva
3f37cdbf9c
fix(database): include configuration_method in the DB export/import flow ( #36958 )
...
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-01-23 19:34:52 -03:00
Beto Dealmeida
c458f99dd4
chore: cleanup ssh tunnel ( #34388 )
2025-12-03 14:26:35 -05:00
Maxime Beauchemin
cb27d5fe8d
chore: proper current_app.config proxy usage ( #34345 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-31 19:27:42 -07:00
Beto Dealmeida
a26e1d822a
chore: remove sqlparse ( #33564 )
2025-06-04 19:31:41 -04:00
Vitor Avila
e35145c816
feat(file uploads): List only allowed schemas in the file uploads dialog ( #32702 )
2025-03-17 23:36:16 -03:00
Đỗ Trọng Hải
a87bedf31a
docs(api): correct attribute name instead of table for GET table_metadata in openapi.json ( #32690 )
...
Signed-off-by: hainenber <dotronghai96@gmail.com >
2025-03-17 11:26:47 -06:00
Beto Dealmeida
8695239372
feat: OAuth2StoreTokenCommand ( #32546 )
2025-03-13 09:45:24 -04:00
Beto Dealmeida
813e79fa9f
fix: skip DB filter when doing OAuth2 ( #32486 )
2025-03-04 13:33:53 -05:00
Vitor Avila
d79f7b28c2
feat: Update database permissions in async mode ( #32231 )
2025-02-28 21:25:47 -03:00
Evan Rusackas
90651dfe3e
fix(dev/ci): pre-commit fixes galore ( #32352 )
2025-02-24 11:26:45 -07:00
Daniel Vaz Gaspar
1b375b715c
refactor: upload data unification, less permissions and less endpoints ( #31959 )
2025-01-28 11:09:55 +00:00
Michael S. Molina
687f762457
refactor: Removes the legacy dataset editor ( #31976 )
2025-01-24 14:52:22 -03:00
Maxime Beauchemin
e51b95ffa8
chore: enforce more ruff rules ( #31447 )
...
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
2024-12-18 17:41:34 -08:00
Shane Zarechian
04077ce934
fix(api): typo api.py ( #31458 )
2024-12-15 13:37:57 -08:00
Jack
849d426e06
feat(oauth): adding necessary changes to support bigquery oauth ( #30674 )
2024-10-30 14:56:22 -05:00
Elizabeth Thompson
2e5016713a
chore: log warnings for database tables api ( #30410 )
2024-09-30 13:52:17 -07:00
Beto Dealmeida
0415ed34ce
feat: allow create/update OAuth2 DB ( #30071 )
2024-09-03 19:22:38 -04:00
Michael S. Molina
d497dcad41
fix: Security manager incorrect calls ( #29884 )
2024-08-23 11:39:45 -03:00
Beto Dealmeida
39209c2b40
fix: handle empty catalog when DB supports them ( #29840 )
2024-08-13 10:08:43 -04:00
Markus Eriksson
922128f6e0
fix: Add user filtering to changed_by. Fixes #27986 ( #29287 )
...
Co-authored-by: Markus Eriksson <markus.eriksson@sinch.com >
2024-07-25 15:23:00 -06:00
Maxime Beauchemin
e749efcb97
fix: refactor view error handling into a separate module ( #29330 )
2024-07-09 10:16:40 -07:00
John Bodley
8fb8199a55
chore(dao/command): Add transaction decorator to try to enforce "unit of work" ( #24969 )
2024-06-28 12:33:56 -07:00
Eyal Ezer
07b2449bd7
refactor: Unify all json.(loads|dumps) usage to utils.json ( #28702 )
...
Co-authored-by: Eyal Ezer <eyal.ezer@ge.com >
2024-05-28 14:17:41 -07:00
Beto Dealmeida
ce668d46cc
feat(SIP-95): catalogs in SQL Lab and datasets ( #28376 )
2024-05-08 17:19:36 -04:00
Beto Dealmeida
e90246fd1f
feat(SIP-95): permissions for catalogs ( #28317 )
2024-05-06 11:41:58 -04:00
Daniel Vaz Gaspar
9a339f08a7
feat: new Columnar upload form and API ( #28192 )
2024-05-06 15:51:42 +01:00
Beto Dealmeida
6cf681df68
feat(SIP-95): new endpoint for table metadata ( #28122 )
2024-04-25 12:23:49 -04:00
Maxime Beauchemin
2d63722150
chore: set up ruff as a new linter/formatter ( #28158 )
2024-04-24 17:19:53 -07:00
Daniel Vaz Gaspar
de82d90b9c
chore: refactor file upload commands ( #28164 )
2024-04-23 08:42:19 +01:00
Daniel Vaz Gaspar
e465876ed4
feat: new Excel upload form and API ( #28105 )
2024-04-19 14:19:42 +01:00
Beto Dealmeida
68a982dfe6
feat(sip-95): new endpoint for extra table metadata ( #28063 )
2024-04-18 10:42:53 -04:00
Daniel Vaz Gaspar
54387b4589
feat: new CSV upload form and API ( #27840 )
2024-04-15 09:38:51 +01:00
Beto Dealmeida
9377227e06
chore(OAuth2): refactor for custom OAuth2 clients ( #27880 )
2024-04-05 12:17:39 -04:00
John Bodley
27acc0b133
chore: Cleanup table access check naming ( #27772 )
2024-04-03 16:02:00 -07:00
John Bodley
30bc8f06dc
chore: Default to engine specification regarding using wildcard ( #27843 )
2024-04-03 09:09:37 -07:00
Beto Dealmeida
9022f5c519
feat(SIP-85): OAuth2 for databases ( #27631 )
2024-04-02 22:05:33 -04:00
Michael S. Molina
6e528426dd
feat: Adds option to disable drill to detail per database ( #27536 )
2024-03-21 15:51:09 -03:00
Geido
89e89de341
fix: SSH Tunnel configuration settings ( #27186 )
2024-03-11 16:56:54 +01:00
Stepan
2e4f6d3f38
perf(export): export generates unnecessary files content ( #26765 )
2024-02-21 16:28:38 -07:00
Geido
7c7deb960d
fix: ID param for DELETE ssh_tunnel endpoint ( #27130 )
...
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com >
2024-02-15 22:09:51 +02:00
Beto Dealmeida
e36c014290
fix(database): allow filtering by UUID ( #26469 )
2024-01-12 11:18:39 -05:00
Ville Brofeldt
0b477e3f7c
chore: harmonize and clean up list views ( #25961 )
2023-12-04 11:51:18 -08:00
John Bodley
07bcfa9b5f
chore(command): Organize Commands according to SIP-92 ( #25850 )
2023-11-22 16:55:54 -03:00
Beto Dealmeida
9c54280d85
feat: add MotherDuck DB engine spec ( #24934 )
2023-08-09 16:42:14 -07:00
Sebastian Liebscher
14a27b1ba3
chore(api): clean up API spec ( #24838 )
2023-07-31 20:03:58 +03:00
Stepan
64ced60f62
fix(datasets): give possibility to add dataset with slashes in name ( #24796 )
2023-07-28 14:33:08 -03:00