Skip to content

Commit 2420152

Browse files
authored
Merge branch 'gooddata:master' into master
2 parents 615e595 + a76d1a3 commit 2420152

29 files changed

Lines changed: 522 additions & 445 deletions

.aida/change_domains.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# (C) 2026 GoodData Corporation
2+
# AIDA change domain classification
3+
#
4+
# Define how changed paths map to validation domains.
5+
# See `.aida/validation_policy.yaml` for mapping domains to pipelines.
6+
domains:
7+
- id: python-package
8+
description: Any workspace Python package under packages/*
9+
match_globs:
10+
- "packages/*/src/**/*.py"
11+
- "packages/*/tests/**/*.py"
12+
- "packages/*/pyproject.toml"
13+
- "packages/*/tox.ini"
14+
- "packages/*/Makefile"
15+
root_depth: 2
16+
17+
- id: api-client
18+
description: Generated API client package and its local config
19+
match_globs:
20+
- "gooddata-api-client/**/*.py"
21+
- "gooddata-api-client/requirements.txt"
22+
- "gooddata-api-client/test-requirements.txt"
23+
- "gooddata-api-client/setup.py"
24+
- "gooddata-api-client/tox.ini"
25+
root_depth: 1
26+
27+
- id: repo-tooling
28+
description: Root-level shared tooling and workspace configuration
29+
match_globs:
30+
- "pyproject.toml"
31+
- "Makefile"
32+
- "project_common.mk"
33+
- "ci_tests.mk"
34+
root_depth: 0
35+
36+
- id: aida-config
37+
description: AIDA workflow configuration and local MCP wiring
38+
match_globs:
39+
- ".aida/**/*.yaml"
40+
- ".aida/**/*.mdc"
41+
- ".mcp.json"
42+
- ".claude/CLAUDE.md"
43+
root_depth: 0

.aida/git_policy.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# (C) 2026 GoodData Corporation
2+
# AIDA git policy
3+
#
4+
# Configure commit and git workflow policy used by AIDA tools.
5+
git_policy:
6+
commit:
7+
# Max allowed characters for the full commit subject line.
8+
subject_max_chars: 70
9+
# Allowed values for required `risk:` footer.
10+
risk_values: [nonprod, low, high]
11+
# Require AI contribution metadata (`AI-Code-Share`) in each commit.
12+
require_ai_share: false
13+
# Require `Co-authored-by:` footer in each commit.
14+
require_co_authored_by: false
15+
# Allow `--ai-share-auto <actor>` (deterministic actor=100).
16+
enable_ai_share_auto: true
17+
workflow:
18+
# Prefer `git push --force-with-lease` over `--force` for unpublished branches.
19+
prefer_force_with_lease: true
20+
# Allow autosquash/rebase only for unpublished (not yet shared) commits.
21+
autosquash_unpublished_only: true
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# (C) 2026 GoodData Corporation
2+
---
3+
description: GoodData dbt package - bridge from dbt metadata to GoodData semantic model
4+
alwaysApply: false
5+
---
6+
7+
# GoodData dbt Package
8+
9+
**Location**: `packages/gooddata-dbt/`
10+
11+
## Owns
12+
13+
- CLI workflow for dbt-oriented GoodData operations (`gooddata-dbt`)
14+
- Conversion of dbt models/profiles into GoodData LDM and analytics deployment inputs
15+
- Workspace and data source provisioning helpers driven by `gooddata.yaml`
16+
17+
## Does NOT Own
18+
19+
- Core GoodData SDK domain/client services → `gooddata-sdk`
20+
- Generic orchestration or storage automation → `gooddata-pipelines`
21+
- dbt runtime implementation itself (provided by dbt tooling)
22+
23+
## Architecture
24+
25+
**Entry point**: `gooddata_dbt.main:main`
26+
27+
**Primary package**: `src/gooddata_dbt`
28+
29+
**Depends on**: `gooddata-sdk`
30+
31+
## Testing
32+
33+
Use package-local pytest suites under `packages/gooddata-dbt/tests`.
34+
35+
## Dependencies
36+
37+
Required: technologies/python, packages/gooddata-sdk
38+
Related: technologies/testing, packages/gooddata-pipelines
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# (C) 2026 GoodData Corporation
2+
---
3+
description: GoodData FDW package - PostgreSQL foreign data wrapper integration
4+
alwaysApply: false
5+
---
6+
7+
# GoodData FDW Package
8+
9+
**Location**: `packages/gooddata-fdw/`
10+
11+
## Owns
12+
13+
- PostgreSQL FDW integration for exposing GoodData data as SQL-accessible foreign tables
14+
- Translation layer between FDW execution flow and GoodData SDK calls
15+
- Import/execute FDW command behavior used by package tests and docs
16+
17+
## Does NOT Own
18+
19+
- Core API/service client behavior → `gooddata-sdk`
20+
- Flight RPC server infrastructure → `gooddata-flight-server`
21+
- FlexConnect function runtime → `gooddata-flexconnect`
22+
23+
## Architecture
24+
25+
**Primary package**: `src/gooddata_fdw`
26+
27+
**Runtime dependency**: multicorn/PostgreSQL FDW environment
28+
29+
**Depends on**: `gooddata-sdk`
30+
31+
## Testing
32+
33+
Use package-local pytest suites under `packages/gooddata-fdw/tests`.
34+
35+
## Dependencies
36+
37+
Required: technologies/python, packages/gooddata-sdk
38+
Related: technologies/testing
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# (C) 2026 GoodData Corporation
2+
---
3+
description: GoodData FlexConnect package - custom data source framework for GoodData
4+
alwaysApply: false
5+
---
6+
7+
# GoodData FlexConnect Package
8+
9+
**Location**: `packages/gooddata-flexconnect/`
10+
11+
## Owns
12+
13+
- FlexConnect framework for authoring custom table-function style data sources
14+
- Runtime contract for mapping custom function outputs into GoodData datasets
15+
- Integration layer combining GoodData SDK interactions with Flight server hosting
16+
17+
## Does NOT Own
18+
19+
- Generic Flight server infrastructure and CLI → `gooddata-flight-server`
20+
- Core GoodData Cloud domain/catalog/compute APIs → `gooddata-sdk`
21+
- PostgreSQL FDW integration → `gooddata-fdw`
22+
23+
## Architecture
24+
25+
**Primary package**: `src/gooddata_flexconnect`
26+
27+
**Depends on**: `gooddata-flight-server`, `gooddata-sdk`
28+
29+
**Typical usage**: external FlexConnect projects consume this package as a framework dependency
30+
31+
## Testing
32+
33+
Use package-local pytest suites under `packages/gooddata-flexconnect/tests`.
34+
35+
## Dependencies
36+
37+
Required: technologies/python, packages/gooddata-flight-server, packages/gooddata-sdk
38+
Related: technologies/testing
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# (C) 2026 GoodData Corporation
2+
---
3+
description: GoodData Flight Server package - pluggable Flight RPC server foundation
4+
alwaysApply: false
5+
---
6+
7+
# GoodData Flight Server Package
8+
9+
**Location**: `packages/gooddata-flight-server/`
10+
11+
## Owns
12+
13+
- Reusable Flight RPC server runtime and CLI (`gooddata-flight-server`)
14+
- Server bootstrap, lifecycle handling, observability, and auth/token integration
15+
- Configuration patterns for running custom Flight method providers
16+
17+
## Does NOT Own
18+
19+
- Core GoodData Cloud domain/catalog/compute SDK APIs → `gooddata-sdk`
20+
- Product-specific data source functions and semantic model mapping → `gooddata-flexconnect`
21+
- Lifecycle provisioning and backup workflows → `gooddata-pipelines`
22+
23+
## Architecture
24+
25+
**Entry point**: `gooddata_flight_server.cli:server_cli`
26+
27+
**Primary package**: `src/gooddata_flight_server`
28+
29+
**Key stack**: `pyarrow.flight`, `dynaconf`, telemetry/metrics integrations
30+
31+
## Testing
32+
33+
Use package-local pytest suites under `packages/gooddata-flight-server/tests`.
34+
35+
## Dependencies
36+
37+
Required: technologies/python
38+
Related: technologies/testing, packages/gooddata-flexconnect

.cursor/rules/packages/gooddata-pandas.mdc renamed to .aida/rules/packages/gooddata-pandas.mdc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# (C) 2025 GoodData Corporation
1+
# (C) 2026 GoodData Corporation
22
---
33
description: GoodData Pandas package - pandas integration layer for GoodData SDK
44
alwaysApply: false
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# (C) 2026 GoodData Corporation
2+
---
3+
description: GoodData Pipelines package - lifecycle automation for GoodData Cloud
4+
alwaysApply: false
5+
---
6+
7+
# GoodData Pipelines Package
8+
9+
**Location**: `packages/gooddata-pipelines/`
10+
11+
## Owns
12+
13+
- High-level automation flows for provisioning users, groups, permissions, and workspace hierarchies
14+
- Backup and restore workflows for workspace metadata (local, S3, Azure Blob targets)
15+
- LDM extension workflows for child workspaces
16+
17+
## Does NOT Own
18+
19+
- Core platform API/service abstractions and low-level client behavior → `gooddata-sdk`
20+
- dbt metadata conversion and deployment CLI → `gooddata-dbt`
21+
- Flight RPC runtime infrastructure → `gooddata-flight-server`
22+
23+
## Architecture
24+
25+
**Primary package**: `src/gooddata_pipelines`
26+
27+
**Depends on**: `gooddata-sdk` plus cloud storage SDK integrations
28+
29+
**Primary modules**: `provisioning`, `backup_and_restore`, `ldm_extension`
30+
31+
## Testing
32+
33+
Use package-local pytest suites under `packages/gooddata-pipelines/tests`.
34+
35+
## Dependencies
36+
37+
Required: technologies/python, packages/gooddata-sdk
38+
Related: technologies/testing
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# (C) 2025 GoodData Corporation
1+
# (C) 2026 GoodData Corporation
22
---
33
description: GoodData SDK core package - primary interface for GoodData Cloud
44
alwaysApply: false
@@ -22,6 +22,9 @@ alwaysApply: false
2222
- Pandas integration → gooddata-pandas package
2323
- dbt integration → gooddata-dbt package
2424
- Flight server → gooddata-flight-server package
25+
- FlexConnect data source framework → gooddata-flexconnect package
26+
- Lifecycle automation workflows → gooddata-pipelines package
27+
- PostgreSQL FDW integration → gooddata-fdw package
2528
- API client generation → gooddata-api-client (generated)
2629

2730
## Architecture
@@ -48,4 +51,4 @@ Uses vcrpy cassettes. See `technologies/testing` rule for workflow.
4851
## Dependencies
4952

5053
Required: technologies/python, technologies/testing
51-
Related: packages/gooddata-pandas
54+
Related: packages/gooddata-pandas, packages/gooddata-dbt, packages/gooddata-pipelines
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# (C) 2026 GoodData Corporation
2+
---
3+
description: Tests support package - shared test helpers for SDK repository packages
4+
alwaysApply: false
5+
---
6+
7+
# Tests Support Package
8+
9+
**Location**: `packages/tests-support/`
10+
11+
## Owns
12+
13+
- Shared test utilities reused across multiple repository packages
14+
- VCR helpers for cassette normalization and deterministic request/response handling
15+
- File and deep-comparison helper functions used by package test suites
16+
17+
## Does NOT Own
18+
19+
- Product/runtime code for any customer-facing package
20+
- Package-specific test scenarios (those remain with each package under `packages/*/tests`)
21+
- Core SDK API behavior and domain services → `gooddata-sdk`
22+
23+
## Architecture
24+
25+
**Primary package**: `src/tests_support`
26+
27+
**Main modules**: `vcrpy_utils.py`, `compare_utils.py`, `file_utils.py`
28+
29+
**Role**: test-only utility package consumed from dependency groups in other packages
30+
31+
## Testing
32+
33+
Prefer adding shared test helpers here only when at least two packages need the behavior.
34+
35+
## Dependencies
36+
37+
Required: technologies/python
38+
Related: technologies/testing, packages/gooddata-sdk, packages/gooddata-pandas

0 commit comments

Comments
 (0)