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
Alexandru Soare
5901320933
feat(database): Adding per-user caching option in Security tab ( #34842 )
2025-09-19 19:15:31 +03: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
Sam Firke
6a13ab8920
fix(spreadsheet uploads): make file extension comparisons case-insensitive ( #32696 )
2025-03-17 11:31:11 -06: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
Vitor Avila
0c6d868483
fix(import): Import a DB connection with expanded rows enabled ( #32657 )
2025-03-14 12:02:39 -03: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
Beto Dealmeida
00883c395c
feat: allow importing encrypted_extra ( #32339 )
2025-02-24 19:29:04 -05: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
sha174n
827042f12f
refactor: Remove CSV upload size limit and related validation ( #32000 )
2025-01-27 16:52:05 -07: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
ff449ad8ab
feat: OAuth2 database field ( #30126 )
2024-09-03 20:57:55 -04: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
Eugene Apollonsky
050c6daff3
fix(cli): add impersonate_user to db import ( #29522 )
...
Co-authored-by: Eugene Apollonsky <eapollonskii@intertrust.com >
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
2024-08-12 14:05:20 -07: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
Maxime Beauchemin
4bb2e2f8af
chore: enable ruff lint rule TRY201 and B904 to improve raise stack traces ( #29166 )
2024-06-12 13:04:42 -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
Craig Rueda
89dbb9888c
chore(models): Adding encrypted field checks ( #28436 )
2024-05-13 09:29:52 -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