Skip to content

feat(gooddata-sdk): [AUTO] add knowledge document REST endpoint wrappers#1441

Closed
yenkins-admin wants to merge 1 commit intomasterfrom
feature/auto-P008-knowledge-document-endpoints
Closed

feat(gooddata-sdk): [AUTO] add knowledge document REST endpoint wrappers#1441
yenkins-admin wants to merge 1 commit intomasterfrom
feature/auto-P008-knowledge-document-endpoints

Conversation

@yenkins-admin
Copy link
Copy Markdown
Contributor

Adds SDK wrapper layer for the five new knowledge document REST endpoints (create, upsert, list, get, delete) introduced in afm-exec-api.

Problem ID: P008 | Workflow: https://github.com/gooddata/gdc-nas/actions/runs/23194184862

What changed in gdc-nas

  • 2724d20 feat(gen-ai): add get/list operations + cleanup — Major proto surface cleanup: IngestKnowledgeDocumentRequest/Response removed (legacy), UpdateKnowledgeDocumentRequest renamed to UpsertKnowledgeDocumentRequest, CreateKnowledgeDocumentResponse+UpdateKnowledgeDocumentResponse collapsed into WriteKnowledgeDocumentResponse, KnowledgeDocument renamed to KnowledgeSearchResult with new workspace_id/title/scopes fields, new KnowledgeDocumentMetadata message, new GetKnowledgeDocumentRequest/Response and ListKnowledgeDocumentsRequest/Response messages, new get_knowledge_document and list_knowledge_documents RPCs.
  • 5086919 feat(afm-exec-api): expose knowledge document REST endpoints — Adds full CRUD REST endpoints: POST /documents, PUT /documents, GET /documents, GET /documents/{filename}, DELETE /documents/{filename}. All endpoints hidden from OpenAPI and delegate to gen-ai gRPC service.
  • 337418f feat(afm-exec-api): gate knowledge endpoints on enableGenAIChat FF — All 6 knowledge endpoints gated on ENABLE_GEN_AI_CHAT feature flag via FeatureFlagResolver, matching the pattern used by AIController and AgenticWorkflowsController.
  • 039f820 fix(afm): knowledge return 404 + refactorGET /documents/{filename} now returns HTTP 404 (NotFoundException) when document is not found (was 200+null). GetKnowledgeDocumentResponseDto wrapper removed; endpoint returns KnowledgeDocumentMetadataDto directly. Shared toMetadataDto() helper extracted.

What was implemented in SDK

Created CatalogKnowledgeService wrapping the five new afm-exec-api knowledge document REST endpoints. Added @attrs.define model classes for all request/response DTOs. Wired the service into GoodDataSdk via a catalog_knowledge property and exported all new public classes from gooddata_sdk.__init__. Unit tests cover model construction, as_api_model() serialization, and service method delegation using MagicMock.

Files modified

  • packages/gooddata-sdk/src/gooddata_sdk/catalog/knowledge/__init__.py (new)
  • packages/gooddata-sdk/src/gooddata_sdk/catalog/knowledge/declarative_model/__init__.py (new)
  • packages/gooddata-sdk/src/gooddata_sdk/catalog/knowledge/declarative_model/knowledge_document.py (new)CatalogKnowledgeDocumentMetadata and request/response model classes
  • packages/gooddata-sdk/src/gooddata_sdk/catalog/knowledge/service.py (new)CatalogKnowledgeService with create, upsert, get, list, delete methods
  • packages/gooddata-sdk/src/gooddata_sdk/sdk.pycatalog_knowledge property wired in
  • packages/gooddata-sdk/src/gooddata_sdk/__init__.py — new public exports added
  • packages/gooddata-sdk/tests/catalog/knowledge/__init__.py (new)
  • packages/gooddata-sdk/tests/catalog/knowledge/test_knowledge_document_service.py (new) — unit tests using MagicMock

JIRA: PENDING (Jira ticket will be created after review)
Risk: Low

Adds CatalogKnowledgeService with create_document, upsert_document,
get_document, list_documents, and delete_document methods wrapping the
new afm-exec-api knowledge endpoints. Includes SDK model classes
(CatalogKnowledgeDocumentMetadata, request/response DTOs) and exports
them via gooddata_sdk.__init__ / GoodDataSdk.catalog_knowledge property.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 17, 2026

Codecov Report

❌ Patch coverage is 94.81481% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.40%. Comparing base (4dc3f87) to head (bdd4fc7).

Files with missing lines Patch % Lines
.../knowledge/declarative_model/knowledge_document.py 94.28% 6 Missing ⚠️
packages/gooddata-sdk/src/gooddata_sdk/sdk.py 80.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1441      +/-   ##
==========================================
+ Coverage   77.24%   77.40%   +0.16%     
==========================================
  Files         227      229       +2     
  Lines       14672    14807     +135     
==========================================
+ Hits        11334    11462     +128     
- Misses       3338     3345       +7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hkad98 hkad98 closed this Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants