Commit Graph

250 Commits

Author SHA1 Message Date
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