Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
c79d038
chore: add support for uv in tests-support Dockerfile
hkad98 Oct 24, 2025
ecbf988
chore: lock `uv.lock` after version bump
hkad98 Oct 29, 2025
9d8d762
chore: remove Python 3.9 from classifiers
hkad98 Oct 29, 2025
2344250
chore: install specific uv version for test Dockerfile
hkad98 Oct 30, 2025
5fdb445
Release 1.54.0
invalid-email-address Oct 30, 2025
feb4786
chore: improve Dockerfile for ci tests
hkad98 Oct 30, 2025
1569471
chore: fix perf degradation in tests
hkad98 Oct 31, 2025
1b27f70
chore: fix uv structure
hkad98 Oct 31, 2025
c19a56a
chore: bump client
hkad98 Nov 3, 2025
76e09f7
fix: remove `update_oidc_parameters`
hkad98 Nov 3, 2025
de91e4d
docs: updated gooddata-docs theme, accessibility updates to heading
ParzivalPavlis Nov 3, 2025
dc4c197
chore: specify test dependencies in root
hkad98 Nov 3, 2025
b8e49f3
docs: add structured data support for documentation pages
ParzivalPavlis Nov 4, 2025
b88dcb0
docs: added structured data
ParzivalPavlis Nov 4, 2025
939db16
docs: add mobile navigation menu to header
ParzivalPavlis Nov 4, 2025
4ff863f
feat: add Python 3.14 support
hkad98 Oct 29, 2025
2265720
chore: adapt license changes
hkad98 Oct 29, 2025
efbc88f
chore(gooddata-pipelines): prevent modification of admin user
janmatzek Nov 6, 2025
57e5cb7
docs: update structured data to use latest version paths
ParzivalPavlis Nov 5, 2025
e6771ee
chore: uv cleanup
hkad98 Nov 10, 2025
a09b46c
fix(gooddata-pipelines): use validated GDC host to create SDK instance
janmatzek Nov 12, 2025
844ec19
Release 1.55.0
invalid-email-address Nov 13, 2025
6e57133
fix(gooddata-pipelines): improve exception handling in permission val…
janmatzek Nov 14, 2025
5c03db4
docs: updated gooddata-docs theme, changed top right button text
ParzivalPavlis Nov 18, 2025
ef0c6de
feat(workspace-backup): Backup to Azure blob storage
benkeanna Nov 13, 2025
a878cea
fix: add support for InlineFilter to compute_to_sdk_converter
no23reason Nov 21, 2025
f70cc5a
fix: sdk and flight server cli
hkad98 Nov 24, 2025
f66288d
chore: relax uv requirements
no23reason Nov 24, 2025
7e3e880
refactor(gooddata-pipelines): remove sdk wrappers
janmatzek Nov 14, 2025
5e7d843
chore: update api-client
fiedlr Nov 24, 2025
802afaa
feat: add locale to gooddata-sdk
fiedlr Nov 24, 2025
564a1ec
test: add a test for locales in declarative api
fiedlr Nov 25, 2025
63b6d7b
feat: add Cursor rules for coding standards and workflow validation
tychtjan Nov 26, 2025
99e846d
chore: add types target to Makefile and project_common.mk for mypy ch…
tychtjan Nov 26, 2025
8d4b9de
Release 1.56.0
invalid-email-address Nov 27, 2025
024607e
fix: Update date granularity definitions
malmiron Nov 27, 2025
64d205b
fix: Regenerate client and API
malmiron Nov 27, 2025
b7c49bd
fix: (MCP ruler) fix lint and lint-fix for python validation
tychtjan Dec 2, 2025
b9d4f06
fix: (MCP ruler) fix lint and lint-fix for python validation
tychtjan Dec 2, 2025
cea0270
Release 1.57.0
invalid-email-address Dec 11, 2025
b64d71b
chore: update cursor rules and gitignore
tychtjan Dec 16, 2025
03d5d70
build: replace AIO with microservices docker-compose
tychtjan Dec 16, 2025
3973ece
build(tests-support): update data source config and bootstrap
tychtjan Dec 16, 2025
b9c7431
refactor: update api-client models and sdk organization service
tychtjan Dec 16, 2025
5d1a669
test: regenerate VCR cassettes for microservices
tychtjan Dec 16, 2025
613d844
docs: update documentation for microservices docker-compose
tychtjan Dec 16, 2025
7dc0fc6
chore(gooddata-pipelines): remove redundant code
janmatzek Dec 17, 2025
faec3d5
feat: enable paging customization
hkad98 Jan 9, 2026
b3ee528
feat: include geo_area_config in DeclarativeLabel
hkad98 Jan 9, 2026
213539d
feat(gooddata-pipelines): Add log for every workspace backed up
benkeanna Jan 21, 2026
0bc9ba6
fix: docker-compose.yaml for ARM
hkad98 Jan 16, 2026
ae6d1bd
fix: use urllib3 headers API and require ~=2.6.0
hkad98 Jan 14, 2026
ee9e781
chore: regenerate api client
hkad98 Jan 14, 2026
f6c4550
feat: adapt changes in api client
hkad98 Jan 22, 2026
50e99dc
feat: regenerate api client
hkad98 Jan 22, 2026
2b03b3a
Release 1.58.0
invalid-email-address Jan 22, 2026
86a8e00
feat: add support for data source alternative ds id
pcerny Jan 29, 2026
edec430
feat: use `ty` instead of mypy
hkad98 Jan 30, 2026
9b1d50f
feat: adapt `ty` findings
hkad98 Jan 30, 2026
05f5427
feat: json reports for tests
tychtjan Feb 3, 2026
36b93ec
chore: add Azure libs to gooddata-pipelines licence file
benkeanna Feb 3, 2026
f10c3a2
chore: run tests when api client changes
hkad98 Feb 3, 2026
3ff0052
chore: make api-client
fiedlr Feb 3, 2026
be69d51
fix: docker-compose
fiedlr Feb 3, 2026
63e8aff
chore: update cassettes
fiedlr Feb 3, 2026
0e1d3a7
chore: update cassettes and SDK for gdc-nas compatibility
github-actions[bot] Feb 4, 2026
3045595
chore: add missing copyright
hkad98 Feb 5, 2026
483e5a8
Release 1.59.0
invalid-email-address Feb 5, 2026
727cf31
chore: address the warning in the workflow
hkad98 Feb 5, 2026
e649776
feat: allow custom grand total position
krocakgooddata Feb 6, 2026
05ad79b
feat: Add CompoundMeasureValueFilter
jeskepetr Feb 10, 2026
ae6fa35
feat: Improve CompoundMeasureValueFilter codebase
jeskepetr Feb 10, 2026
f06b3b1
chore: utilize trusted publisher in release
hkad98 Feb 11, 2026
bad132d
chore: utilize trusted publisher in prod release
hkad98 Feb 11, 2026
424c4a6
chore: update api client
hkad98 Feb 13, 2026
fc6e690
feat: add support of memory_items to CatalogDeclarativeAnalyticsLayer
hkad98 Feb 12, 2026
35a5dca
test: update fixtures
hkad98 Feb 13, 2026
39c30b3
fix: nullable parameters in DeclarativeMemoryItem
hkad98 Feb 13, 2026
4dedb99
fear: store memory items to disk
hkad98 Feb 13, 2026
1d1b7c2
refactor: unify naming for export definition folder
hkad98 Feb 13, 2026
1deb1c7
chore: add CatalogDeclarativeMemoryItem to __init__.py
hkad98 Feb 13, 2026
65bbf59
fix: wrong memoryItems location
hkad98 Feb 16, 2026
13423af
ci: add gdc-nas notification on cassette PR merge
tychtjan Feb 16, 2026
321e0a6
ci: rename gdc-nas notification workflow
tychtjan Feb 16, 2026
11e7e4e
feat: add new fields regarding NULL values
fiedlr Jan 27, 2026
16a1217
chore: bump `uv` support and loosen dependency
hkad98 Feb 17, 2026
b662e6e
chore: `ty` does not need to run using `tox`
hkad98 Feb 17, 2026
b4e4741
chore: bump ruff to v0.15.1
hkad98 Feb 17, 2026
915109e
chore: run CI with locked dependencies
hkad98 Feb 17, 2026
de9ec4e
chore: update Dockerfile
hkad98 Feb 17, 2026
3b5071e
fix: codecov upload
hkad98 Feb 18, 2026
54046ce
feat: Introduce AllTimeDateFilter and date filter emptyValueHandling
jeskepetr Feb 17, 2026
bcf9cb6
Release 1.60.0
invalid-email-address Feb 19, 2026
9667534
docs: add info on fixture types
fiedlr Feb 23, 2026
c1f648c
docs: accessibility updates, updated docs theme
ParzivalPavlis Feb 24, 2026
5e811c0
chore(aida): migrate rules and validation routing
jaceksan Feb 24, 2026
65a6c54
chore(aida): extend package validation profiles
jaceksan Feb 24, 2026
a716d0d
chore(aida): align package rule copyright year
jaceksan Feb 24, 2026
cc310af
feat: codecov setup
hkad98 Feb 24, 2026
54f2929
fix(gooddata-dbt): restore gooddata-dbt CLI entrypoint
jaceksan Feb 25, 2026
d175f36
feat: exec initiator into FlexConnect
falkenstein Feb 23, 2026
1bf8773
chore: codecov token propagation
hkad98 Feb 26, 2026
59eced5
chore: upgrade openapi-generator-cli from v6.0.1 to v6.6.0
tychtjan Feb 26, 2026
3593446
chore(ci): fix codecov upload and coverage collection
hkad98 Feb 26, 2026
eacc44c
ci(docs): add caching and parallel build scripts for doc generation
hkad98 Feb 27, 2026
0aeb7cc
ci(docs): add v2 draft workflow for parallel doc build validation
hkad98 Feb 27, 2026
4a7a673
fix(docs): fix version discovery to match three-part branch names
hkad98 Feb 27, 2026
4e65278
fix(docs): set HUGO_ENV=production explicitly in v2 workflow
hkad98 Feb 27, 2026
eae03d1
refactor(gooddata-sdk): migrate @attr.s to @define across all catalog…
hkad98 Mar 2, 2026
ed26d65
chore: apply UP045 rule
hkad98 Mar 3, 2026
53dd8dd
feat: add support for GEO_AREA label
hkad98 Mar 3, 2026
4ce8ae9
fix(docs): fix version regex in assemble-versions.sh to match major.m…
hkad98 Feb 27, 2026
ad5d3e3
perf(docs): cache Hugo template partials for 29% faster builds
hkad98 Mar 1, 2026
8475677
refactor(gooddata-dbt): use CatalogGeoAreaConfig type for geo_area_co…
hkad98 Mar 4, 2026
49f01d0
feat(gooddata-sdk): add LLM Provider support (Beta)
hkad98 Mar 5, 2026
a1c1c78
Release 1.61.0
invalid-email-address Mar 5, 2026
de16fea
chore(aida): add regenerated AIDA onboarding artifacts
jaceksan Mar 5, 2026
f4822a5
fix: use exist_ok=True in create_directory to prevent race condition
vondravl Mar 6, 2026
dfbcd61
perf(docs): pre-render API reference HTML in Python instead of Hugo s…
hkad98 Mar 5, 2026
3ad5f12
test(docs): add tests for python_ref_builder, fix types
hkad98 Mar 5, 2026
26aaf47
fix(docs): guard links.json in generate.sh, narrow cache key
hkad98 Mar 5, 2026
449fc1f
fix: include test dependency group in docs-scripts CI job
hkad98 Mar 5, 2026
3bcd7a6
fix: add toml to test dependency group for docs-scripts CI
hkad98 Mar 5, 2026
a3d5d98
fix(docs): remove stale artifacts and fix draft deploy baseURL
hkad98 Mar 6, 2026
7647635
fix(docker): add missing api-gw env vars and regenerate cassettes
tychtjan Mar 11, 2026
d1c6a70
build: regenerate api-client with result OpenAPI spec
hkad98 Mar 13, 2026
84a6155
feat(gooddata-sdk): add CSV upload support for GDSTORAGE data sources
hkad98 Mar 13, 2026
7122af1
fix(gooddata-api-client): restore null-byte regex pattern dropped by …
hkad98 Mar 13, 2026
4c21ce6
fix(gooddata-api-client): remove pyproject.toml to fix dev release
hkad98 Mar 13, 2026
8c6b3d9
fix(gooddata-api-client): re-lock uv.lock after pyproject.toml removal
hkad98 Mar 13, 2026
4380660
chore(aida): refresh artifacts for newer AIDA version
jaceksan Mar 9, 2026
4983c7f
chore(aida): align PR body template with gdc-aida
jaceksan Mar 15, 2026
6f15723
feat(gooddata-sdk): add CatalogAppearanceService for theme and color …
hkad98 Mar 14, 2026
160d1f1
fix(gooddata-sdk): fix copyright year and docs format in appearance s…
hkad98 Mar 14, 2026
9808731
fix: convert RST-style docstrings to Google style for docs generation
hkad98 Mar 14, 2026
27fc077
feat(docs): replace hand-written method pages with griffe + pre-rende…
hkad98 Mar 16, 2026
229102d
feat(docs): replace hand-written method pages with griffe + pre-rende…
hkad98 Mar 16, 2026
fbad06f
# (C) 2026 GoodData Corporation
hkad98 Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
12 changes: 12 additions & 0 deletions .aiassistant/rules/aida.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# You must follow this guidance only if AIDA MCP tools are available.
Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task.
Reuse one stable `session_id` for the whole conversation when calling `get_rules`.
When a `get_rules` response returns `delta.cursor`, pass it as `delta_cursor` on the next `get_rules` call in the same conversation.
You must always follow instructions returned by the `get_rules` MCP tool.
Do not perform Git or GitHub management unless the user explicitly asks for it.
If the user asks for code or docs changes only, stop before commit, push, or PR actions.
For commit and push workflow, do not call `get_rules`.
When the user explicitly asks for a commit, call the AIDA MCP `commit_command` tool.
The tool executes the commit server-side. If it returns `ok=true`, the commit is done — do not run any git commit commands.
If it returns `status=needs_more_input`, infer the missing policy-controlled values from the current changes and retry instead of asking the user.
Do not handcraft `git commit` arguments.
2 changes: 2 additions & 0 deletions .aida/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
rules_selection.local.yaml
git_policy.local.yaml
44 changes: 44 additions & 0 deletions .aida/change_domains.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# (C) 2026 GoodData Corporation
# AIDA change domain classification
#
# Define how changed paths map to validation domains.
# See `.aida/validation_policy.yaml` for mapping domains to pipelines.
version: 1
domains:
- id: python-package
description: Any workspace Python package under packages/*
match_globs:
- "packages/*/src/**/*.py"
- "packages/*/tests/**/*.py"
- "packages/*/pyproject.toml"
- "packages/*/tox.ini"
- "packages/*/Makefile"
root_depth: 2

- id: api-client
description: Generated API client package and its local config
match_globs:
- "gooddata-api-client/**/*.py"
- "gooddata-api-client/requirements.txt"
- "gooddata-api-client/test-requirements.txt"
- "gooddata-api-client/setup.py"
- "gooddata-api-client/tox.ini"
root_depth: 1

- id: repo-tooling
description: Root-level shared tooling and workspace configuration
match_globs:
- "pyproject.toml"
- "Makefile"
- "project_common.mk"
- "ci_tests.mk"
root_depth: 0

- id: aida-config
description: AIDA workflow configuration and local MCP wiring
match_globs:
- ".aida/**/*.yaml"
- ".aida/**/*.mdc"
- ".mcp.json"
- ".claude/CLAUDE.md"
root_depth: 0
27 changes: 27 additions & 0 deletions .aida/git_policy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# (C) 2026 GoodData Corporation
# AIDA git policy
#
# Configure commit and git workflow policy used by AIDA tools.
version: 1
git_policy:
commit:
subject_max_chars: 70
risk_values:
- nonprod
- low
- high
require_co_authored_by: false
ticket_prefix: JIRA
risk_prefix: risk
template_file: templates/commit-message.txt
pre_commit_guidance: false
ticket_enabled: true
risk_enabled: true
workflow:
prefer_force_with_lease: true
autosquash_unpublished_only: true
pr:
title_template_file: templates/pr-title.txt
body_template_file: templates/pr-body.md
enforcement:
mode: "off"
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# You must follow this guidance only if AIDA MCP tools are available.
Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task.
Call AIDA MCP `get_rules` again before entering commit/push workflow with query: "How to commit/push".
You must always follow instructions returned by the `get_rules` MCP tool.
57 changes: 57 additions & 0 deletions .aida/migrate-backups/20260307-133351/.claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
apply: always
---

# AIDA Development Workflow

This file contains only:
- the mandatory workflow, and
- which MCP tools to use in each phase.

Do not duplicate detailed “how to” guidance here. Always rely on MCP tool descriptions and `get_rules(...)`.

## Editing this file (template-driven)

This file is generated by `aida-mcp init` from templates shipped in the `aida-mcp` package.

- **Do not hand-edit** `.cursor/rules/aida.mdc` or `.claude/CLAUDE.md` in a repo.
- To change the content, **update the templates in the `aida-mcp` package** and then rerun `aida-mcp init` in the repo.

## Post-init check

- After `aida-mcp init`, if MCP tools like `get_rules` or `validate` are missing, run `aida-mcp doctor`.

## Workflow (mandatory)

### 1) Get rules

- At the start of every task (and again on scope change), call `get_rules(query="...")`.
- Follow the rules returned by `get_rules` for the task.

### 2) Implement

- Make the requested change(s) following repository rules returned by `get_rules`.

### 3) Validate (blocking)

- If you changed code, you must validate before responding about code changes.
- Prefer the narrowest validation that is still correct (use `test_filter` when appropriate).
- Use the MCP validation tool `validate` (prefer this over raw `./gradlew` / `make`).
- If you changed `.proto` files, do not run proto regeneration manually; `validate` will run it when needed.
- If unsure what validation to run, call `get_rules(query="validation workflow")` and follow the returned guidance.

### 4) Commit / PR (if asked)

- Ask for the JIRA ticket if unknown.
- Before committing or creating a PR, call `get_rules(query="git")` and follow the returned guidance.
- For commit creation, use `aida-mcp commit` (do not use raw `git commit`).

## When to create/update rules

If any of these happen, propose updates to repo rules/config by following `get_rules(query="rules authoring")`:
- repeated friction (“how do I … in this repo?” keeps coming up)
- user dissatisfaction (“wrong”, “not what I meant”, “stop doing that”)
- recurring validation failures of the same kind
- large/risky cross-cutting changes

Before creating/updating files under `.aida/` (including `.aida/rules/**` and `.aida/*.yaml`), ask the user for explicit permission and proceed only after approval.
4 changes: 4 additions & 0 deletions .aida/migrate-backups/20260307-133351/.junie/guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# You must follow this guidance only if AIDA MCP tools are available.
Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task.
Call AIDA MCP `get_rules` again before entering commit/push workflow with query: "How to commit/push".
You must always follow instructions returned by the `get_rules` MCP tool.
4 changes: 4 additions & 0 deletions .aida/migrate-backups/20260307-133351/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# You must follow this guidance only if AIDA MCP tools are available.
Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task.
Call AIDA MCP `get_rules` again before entering commit/push workflow with query: "How to commit/push".
You must always follow instructions returned by the `get_rules` MCP tool.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# You must follow this guidance only if AIDA MCP tools are available.
Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task.
You must always follow instructions returned by the `get_rules` MCP tool.
For commit and push workflow, do not call `get_rules`.
Before any commit, call the AIDA MCP `commit_command` tool and execute the returned raw `git commit` command exactly.
Do not handcraft `git commit` arguments or rewrite the returned command.
10 changes: 10 additions & 0 deletions .aida/migrate-backups/20260307-140805/.claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
apply: always
---

# You must follow this guidance only if AIDA MCP tools are available.
Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task.
You must always follow instructions returned by the `get_rules` MCP tool.
For commit and push workflow, do not call `get_rules`.
Before any commit, call the AIDA MCP `commit_command` tool and execute the returned raw `git commit` command exactly.
Do not handcraft `git commit` arguments or rewrite the returned command.
6 changes: 6 additions & 0 deletions .aida/migrate-backups/20260307-140805/.junie/guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# You must follow this guidance only if AIDA MCP tools are available.
Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task.
You must always follow instructions returned by the `get_rules` MCP tool.
For commit and push workflow, do not call `get_rules`.
Before any commit, call the AIDA MCP `commit_command` tool and execute the returned raw `git commit` command exactly.
Do not handcraft `git commit` arguments or rewrite the returned command.
6 changes: 6 additions & 0 deletions .aida/migrate-backups/20260307-140805/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# You must follow this guidance only if AIDA MCP tools are available.
Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task.
You must always follow instructions returned by the `get_rules` MCP tool.
For commit and push workflow, do not call `get_rules`.
Before any commit, call the AIDA MCP `commit_command` tool and execute the returned raw `git commit` command exactly.
Do not handcraft `git commit` arguments or rewrite the returned command.
38 changes: 38 additions & 0 deletions .aida/rules/packages/gooddata-dbt.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# (C) 2026 GoodData Corporation
---
description: GoodData dbt package - bridge from dbt metadata to GoodData semantic model
alwaysApply: false
---

# GoodData dbt Package

**Location**: `packages/gooddata-dbt/`

## Owns

- CLI workflow for dbt-oriented GoodData operations (`gooddata-dbt`)
- Conversion of dbt models/profiles into GoodData LDM and analytics deployment inputs
- Workspace and data source provisioning helpers driven by `gooddata.yaml`

## Does NOT Own

- Core GoodData SDK domain/client services → `gooddata-sdk`
- Generic orchestration or storage automation → `gooddata-pipelines`
- dbt runtime implementation itself (provided by dbt tooling)

## Architecture

**Entry point**: `gooddata_dbt.main:main`

**Primary package**: `src/gooddata_dbt`

**Depends on**: `gooddata-sdk`

## Testing

Use package-local pytest suites under `packages/gooddata-dbt/tests`.

## Dependencies

Required: technologies/python, packages/gooddata-sdk
Related: technologies/testing, packages/gooddata-pipelines
38 changes: 38 additions & 0 deletions .aida/rules/packages/gooddata-fdw.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# (C) 2026 GoodData Corporation
---
description: GoodData FDW package - PostgreSQL foreign data wrapper integration
alwaysApply: false
---

# GoodData FDW Package

**Location**: `packages/gooddata-fdw/`

## Owns

- PostgreSQL FDW integration for exposing GoodData data as SQL-accessible foreign tables
- Translation layer between FDW execution flow and GoodData SDK calls
- Import/execute FDW command behavior used by package tests and docs

## Does NOT Own

- Core API/service client behavior → `gooddata-sdk`
- Flight RPC server infrastructure → `gooddata-flight-server`
- FlexConnect function runtime → `gooddata-flexconnect`

## Architecture

**Primary package**: `src/gooddata_fdw`

**Runtime dependency**: multicorn/PostgreSQL FDW environment

**Depends on**: `gooddata-sdk`

## Testing

Use package-local pytest suites under `packages/gooddata-fdw/tests`.

## Dependencies

Required: technologies/python, packages/gooddata-sdk
Related: technologies/testing
38 changes: 38 additions & 0 deletions .aida/rules/packages/gooddata-flexconnect.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# (C) 2026 GoodData Corporation
---
description: GoodData FlexConnect package - custom data source framework for GoodData
alwaysApply: false
---

# GoodData FlexConnect Package

**Location**: `packages/gooddata-flexconnect/`

## Owns

- FlexConnect framework for authoring custom table-function style data sources
- Runtime contract for mapping custom function outputs into GoodData datasets
- Integration layer combining GoodData SDK interactions with Flight server hosting

## Does NOT Own

- Generic Flight server infrastructure and CLI → `gooddata-flight-server`
- Core GoodData Cloud domain/catalog/compute APIs → `gooddata-sdk`
- PostgreSQL FDW integration → `gooddata-fdw`

## Architecture

**Primary package**: `src/gooddata_flexconnect`

**Depends on**: `gooddata-flight-server`, `gooddata-sdk`

**Typical usage**: external FlexConnect projects consume this package as a framework dependency

## Testing

Use package-local pytest suites under `packages/gooddata-flexconnect/tests`.

## Dependencies

Required: technologies/python, packages/gooddata-flight-server, packages/gooddata-sdk
Related: technologies/testing
38 changes: 38 additions & 0 deletions .aida/rules/packages/gooddata-flight-server.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# (C) 2026 GoodData Corporation
---
description: GoodData Flight Server package - pluggable Flight RPC server foundation
alwaysApply: false
---

# GoodData Flight Server Package

**Location**: `packages/gooddata-flight-server/`

## Owns

- Reusable Flight RPC server runtime and CLI (`gooddata-flight-server`)
- Server bootstrap, lifecycle handling, observability, and auth/token integration
- Configuration patterns for running custom Flight method providers

## Does NOT Own

- Core GoodData Cloud domain/catalog/compute SDK APIs → `gooddata-sdk`
- Product-specific data source functions and semantic model mapping → `gooddata-flexconnect`
- Lifecycle provisioning and backup workflows → `gooddata-pipelines`

## Architecture

**Entry point**: `gooddata_flight_server.cli:server_cli`

**Primary package**: `src/gooddata_flight_server`

**Key stack**: `pyarrow.flight`, `dynaconf`, telemetry/metrics integrations

## Testing

Use package-local pytest suites under `packages/gooddata-flight-server/tests`.

## Dependencies

Required: technologies/python
Related: technologies/testing, packages/gooddata-flexconnect
43 changes: 43 additions & 0 deletions .aida/rules/packages/gooddata-pandas.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# (C) 2026 GoodData Corporation
---
description: GoodData Pandas package - pandas integration layer for GoodData SDK
alwaysApply: false
---

# GoodData Pandas Package

**Location**: `packages/gooddata-pandas/`

## Owns

- Pandas Series and DataFrame creation from GoodData data
- Integration layer between GoodData SDK and pandas

## Does NOT Own

- Core SDK functionality → gooddata-sdk package
- API client → gooddata-api-client (generated)

## Architecture

**Dependency**: Depends on `gooddata-sdk` core package.

**Main class**: `GoodPandas` - extends SDK with pandas-specific operations

## Usage

```python
from gooddata_pandas import GoodPandas

gp = GoodPandas(host="https://example.gooddata.com", token="...")
df = gp.data_frames(workspace_id="demo", insight_id="...")
```

## Testing

Uses vcrpy cassettes. See `technologies/testing` rule for workflow.

## Dependencies

Required: technologies/python, packages/gooddata-sdk
Related: technologies/testing
Loading
Loading