keboola-cli 0.63.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- keboola_agent_cli/__init__.py +34 -0
- keboola_agent_cli/__main__.py +5 -0
- keboola_agent_cli/_ui_dist/assets/arc-DhFYIddx.js +2 -0
- keboola_agent_cli/_ui_dist/assets/arc-DhFYIddx.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/architecture-7EHR7CIX-hNCijx_H.js +1 -0
- keboola_agent_cli/_ui_dist/assets/architectureDiagram-3BPJPVTR-C6hUlprM.js +37 -0
- keboola_agent_cli/_ui_dist/assets/architectureDiagram-3BPJPVTR-C6hUlprM.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/array-BifhSqXX.js +2 -0
- keboola_agent_cli/_ui_dist/assets/array-BifhSqXX.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/blockDiagram-GPEHLZMM-DC7qY9i4.js +133 -0
- keboola_agent_cli/_ui_dist/assets/blockDiagram-GPEHLZMM-DC7qY9i4.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/c4Diagram-AAUBKEIU-5Lh44evt.js +11 -0
- keboola_agent_cli/_ui_dist/assets/c4Diagram-AAUBKEIU-5Lh44evt.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/channel-DBMrXlxx.js +2 -0
- keboola_agent_cli/_ui_dist/assets/channel-DBMrXlxx.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-2J33WTMH-Coy82EBh.js +2 -0
- keboola_agent_cli/_ui_dist/assets/chunk-2J33WTMH-Coy82EBh.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-3OPIFGDE-BQC5CRHI.js +63 -0
- keboola_agent_cli/_ui_dist/assets/chunk-3OPIFGDE-BQC5CRHI.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-4BX2VUAB-DUuEt70o.js +2 -0
- keboola_agent_cli/_ui_dist/assets/chunk-4BX2VUAB-DUuEt70o.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-55IACEB6-BvR-6chF.js +2 -0
- keboola_agent_cli/_ui_dist/assets/chunk-55IACEB6-BvR-6chF.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-5ZQYHXKU-BjcTN7ul.js +3 -0
- keboola_agent_cli/_ui_dist/assets/chunk-5ZQYHXKU-BjcTN7ul.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-727SXJPM-C0zxqqRN.js +207 -0
- keboola_agent_cli/_ui_dist/assets/chunk-727SXJPM-C0zxqqRN.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-AQP2D5EJ-CXf7rIlZ.js +232 -0
- keboola_agent_cli/_ui_dist/assets/chunk-AQP2D5EJ-CXf7rIlZ.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-BSJP7CBP-Oj_FO9Q7.js +2 -0
- keboola_agent_cli/_ui_dist/assets/chunk-BSJP7CBP-Oj_FO9Q7.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-CSCIHK7Q-CcTsLrFc.js +124 -0
- keboola_agent_cli/_ui_dist/assets/chunk-CSCIHK7Q-CcTsLrFc.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-FMBD7UC4-FH-zLkkW.js +16 -0
- keboola_agent_cli/_ui_dist/assets/chunk-FMBD7UC4-FH-zLkkW.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-L5ZTLDWV-B1Ky_e7O.js +2 -0
- keboola_agent_cli/_ui_dist/assets/chunk-L5ZTLDWV-B1Ky_e7O.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-ND2GUHAM-BHz1rpbm.js +2 -0
- keboola_agent_cli/_ui_dist/assets/chunk-ND2GUHAM-BHz1rpbm.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-NNHCCRGN-DlpIbxXb.js +160 -0
- keboola_agent_cli/_ui_dist/assets/chunk-NNHCCRGN-DlpIbxXb.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-NZK2D7GU-tnrSoegS.js +2 -0
- keboola_agent_cli/_ui_dist/assets/chunk-NZK2D7GU-tnrSoegS.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-O5CBEL6O-DxxqDH0l.js +71 -0
- keboola_agent_cli/_ui_dist/assets/chunk-O5CBEL6O-DxxqDH0l.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/chunk-QZHKN3VN-CSjc2gjj.js +2 -0
- keboola_agent_cli/_ui_dist/assets/chunk-QZHKN3VN-CSjc2gjj.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/classDiagram-4FO5ZUOK-BuZcZu85.js +2 -0
- keboola_agent_cli/_ui_dist/assets/classDiagram-4FO5ZUOK-BuZcZu85.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/classDiagram-v2-Q7XG4LA2-BuZcZu85.js +2 -0
- keboola_agent_cli/_ui_dist/assets/classDiagram-v2-Q7XG4LA2-BuZcZu85.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/cose-bilkent-S5V4N54A-Y0L8LDMa.js +2 -0
- keboola_agent_cli/_ui_dist/assets/cose-bilkent-S5V4N54A-Y0L8LDMa.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/cytoscape.esm-C8YCVR3_.js +322 -0
- keboola_agent_cli/_ui_dist/assets/cytoscape.esm-C8YCVR3_.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/dagre-BM42HDAG-UZ-9BTqF.js +5 -0
- keboola_agent_cli/_ui_dist/assets/dagre-BM42HDAG-UZ-9BTqF.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/dagre-Bx709z4p.js +2 -0
- keboola_agent_cli/_ui_dist/assets/dagre-Bx709z4p.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/defaultLocale-C8Fc0cco.js +2 -0
- keboola_agent_cli/_ui_dist/assets/defaultLocale-C8Fc0cco.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/diagram-2AECGRRQ-DoDQ60wi.js +44 -0
- keboola_agent_cli/_ui_dist/assets/diagram-2AECGRRQ-DoDQ60wi.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/diagram-5GNKFQAL-CMGFxpUs.js +11 -0
- keboola_agent_cli/_ui_dist/assets/diagram-5GNKFQAL-CMGFxpUs.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/diagram-KO2AKTUF-1uGDa-Iu.js +4 -0
- keboola_agent_cli/_ui_dist/assets/diagram-KO2AKTUF-1uGDa-Iu.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/diagram-LMA3HP47-XtFH7B51.js +25 -0
- keboola_agent_cli/_ui_dist/assets/diagram-LMA3HP47-XtFH7B51.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/diagram-OG6HWLK6-B4_Te1T5.js +25 -0
- keboola_agent_cli/_ui_dist/assets/diagram-OG6HWLK6-B4_Te1T5.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/dist-Di6zmlv0.js +2 -0
- keboola_agent_cli/_ui_dist/assets/dist-Di6zmlv0.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/erDiagram-TEJ5UH35-NjQkrdFt.js +86 -0
- keboola_agent_cli/_ui_dist/assets/erDiagram-TEJ5UH35-NjQkrdFt.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/eventmodeling-FCH6USID-BrJMIks8.js +1 -0
- keboola_agent_cli/_ui_dist/assets/flowDiagram-I6XJVG4X-CIr8DWl7.js +163 -0
- keboola_agent_cli/_ui_dist/assets/flowDiagram-I6XJVG4X-CIr8DWl7.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/ganttDiagram-6RSMTGT7-C1VY_xbQ.js +293 -0
- keboola_agent_cli/_ui_dist/assets/ganttDiagram-6RSMTGT7-C1VY_xbQ.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/gitGraph-WXDBUCRP-COacYjo-.js +1 -0
- keboola_agent_cli/_ui_dist/assets/gitGraphDiagram-PVQCEYII-DQT8-kg2.js +107 -0
- keboola_agent_cli/_ui_dist/assets/gitGraphDiagram-PVQCEYII-DQT8-kg2.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/graphlib-B8gBHxth.js +2 -0
- keboola_agent_cli/_ui_dist/assets/graphlib-B8gBHxth.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/index-CMq50kkV.css +1 -0
- keboola_agent_cli/_ui_dist/assets/index-D8W97DAz.js +118 -0
- keboola_agent_cli/_ui_dist/assets/index-D8W97DAz.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/info-J43DQDTF-DdCTRIzU.js +1 -0
- keboola_agent_cli/_ui_dist/assets/infoDiagram-5YYISTIA-C77rsoTp.js +3 -0
- keboola_agent_cli/_ui_dist/assets/infoDiagram-5YYISTIA-C77rsoTp.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/init-D6jRqBbL.js +2 -0
- keboola_agent_cli/_ui_dist/assets/init-D6jRqBbL.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/ishikawaDiagram-YF4QCWOH-BcTbXaLy.js +71 -0
- keboola_agent_cli/_ui_dist/assets/ishikawaDiagram-YF4QCWOH-BcTbXaLy.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/journeyDiagram-JHISSGLW-BejeAJQ_.js +140 -0
- keboola_agent_cli/_ui_dist/assets/journeyDiagram-JHISSGLW-BejeAJQ_.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/kanban-definition-UN3LZRKU-BRNz_UrH.js +90 -0
- keboola_agent_cli/_ui_dist/assets/kanban-definition-UN3LZRKU-BRNz_UrH.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/katex-C4eR7coU.js +258 -0
- keboola_agent_cli/_ui_dist/assets/katex-C4eR7coU.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/line-CzAQKFbJ.js +2 -0
- keboola_agent_cli/_ui_dist/assets/line-CzAQKFbJ.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/linear-DUNFFdck.js +2 -0
- keboola_agent_cli/_ui_dist/assets/linear-DUNFFdck.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/mermaid-parser.core-CpuBOkFa.js +5 -0
- keboola_agent_cli/_ui_dist/assets/mermaid-parser.core-CpuBOkFa.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/mindmap-definition-RKZ34NQL-9EJQNjH0.js +97 -0
- keboola_agent_cli/_ui_dist/assets/mindmap-definition-RKZ34NQL-9EJQNjH0.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/ordinal-hYBb2elL.js +2 -0
- keboola_agent_cli/_ui_dist/assets/ordinal-hYBb2elL.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/packet-YPE3B663-DLiiw_B2.js +1 -0
- keboola_agent_cli/_ui_dist/assets/path-BWPyau1x.js +2 -0
- keboola_agent_cli/_ui_dist/assets/path-BWPyau1x.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/pie-LRSECV5Y-CRoO8G1g.js +1 -0
- keboola_agent_cli/_ui_dist/assets/pieDiagram-4H26LBE5-XH4cy6Cb.js +31 -0
- keboola_agent_cli/_ui_dist/assets/pieDiagram-4H26LBE5-XH4cy6Cb.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/quadrantDiagram-W4KKPZXB-fdhc93U8.js +8 -0
- keboola_agent_cli/_ui_dist/assets/quadrantDiagram-W4KKPZXB-fdhc93U8.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/radar-GUYGQ44K-DAlLVJHm.js +1 -0
- keboola_agent_cli/_ui_dist/assets/requirementDiagram-4Y6WPE33-a94eP3R9.js +85 -0
- keboola_agent_cli/_ui_dist/assets/requirementDiagram-4Y6WPE33-a94eP3R9.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/rough.esm-CSKSodPl.js +2 -0
- keboola_agent_cli/_ui_dist/assets/rough.esm-CSKSodPl.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/sankeyDiagram-5OEKKPKP-jcBa02sp.js +41 -0
- keboola_agent_cli/_ui_dist/assets/sankeyDiagram-5OEKKPKP-jcBa02sp.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/sequenceDiagram-3UESZ5HK-A5-GGM-e.js +163 -0
- keboola_agent_cli/_ui_dist/assets/sequenceDiagram-3UESZ5HK-A5-GGM-e.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/src-ZI-V_AF0.js +2 -0
- keboola_agent_cli/_ui_dist/assets/src-ZI-V_AF0.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/stateDiagram-AJRCARHV-BKAA5rqE.js +2 -0
- keboola_agent_cli/_ui_dist/assets/stateDiagram-AJRCARHV-BKAA5rqE.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/stateDiagram-v2-BHNVJYJU-DnJwJBsE.js +2 -0
- keboola_agent_cli/_ui_dist/assets/stateDiagram-v2-BHNVJYJU-DnJwJBsE.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/timeline-definition-PNZ67QCA-Cy39jp8b.js +121 -0
- keboola_agent_cli/_ui_dist/assets/timeline-definition-PNZ67QCA-Cy39jp8b.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/treeView-BLDUP644-DbLYl23-.js +1 -0
- keboola_agent_cli/_ui_dist/assets/treemap-LRROVOQU-Bp0eGlOt.js +1 -0
- keboola_agent_cli/_ui_dist/assets/vennDiagram-CIIHVFJN-BGECKubd.js +35 -0
- keboola_agent_cli/_ui_dist/assets/vennDiagram-CIIHVFJN-BGECKubd.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/wardley-L42UT6IY-D4yH4jqS.js +1 -0
- keboola_agent_cli/_ui_dist/assets/wardleyDiagram-YWT4CUSO-D6XRG3cZ.js +79 -0
- keboola_agent_cli/_ui_dist/assets/wardleyDiagram-YWT4CUSO-D6XRG3cZ.js.map +1 -0
- keboola_agent_cli/_ui_dist/assets/xychartDiagram-2RQKCTM6-DRre-pfZ.js +8 -0
- keboola_agent_cli/_ui_dist/assets/xychartDiagram-2RQKCTM6-DRre-pfZ.js.map +1 -0
- keboola_agent_cli/_ui_dist/index.html +50 -0
- keboola_agent_cli/ai_client.py +83 -0
- keboola_agent_cli/auto_update.py +550 -0
- keboola_agent_cli/changelog.py +1198 -0
- keboola_agent_cli/cli.py +448 -0
- keboola_agent_cli/client.py +3422 -0
- keboola_agent_cli/commands/__init__.py +0 -0
- keboola_agent_cli/commands/_data_app_git.py +343 -0
- keboola_agent_cli/commands/_helpers.py +377 -0
- keboola_agent_cli/commands/_metadata_input.py +49 -0
- keboola_agent_cli/commands/_semantic_layer_crud.py +632 -0
- keboola_agent_cli/commands/_semantic_layer_helpers.py +44 -0
- keboola_agent_cli/commands/_semantic_layer_reference_data.py +247 -0
- keboola_agent_cli/commands/agent.py +968 -0
- keboola_agent_cli/commands/branch.py +423 -0
- keboola_agent_cli/commands/changelog.py +168 -0
- keboola_agent_cli/commands/component.py +216 -0
- keboola_agent_cli/commands/config.py +2442 -0
- keboola_agent_cli/commands/context.py +1481 -0
- keboola_agent_cli/commands/data_app.py +1279 -0
- keboola_agent_cli/commands/dev_portal.py +584 -0
- keboola_agent_cli/commands/doctor.py +37 -0
- keboola_agent_cli/commands/encrypt.py +145 -0
- keboola_agent_cli/commands/feature.py +311 -0
- keboola_agent_cli/commands/flow.py +948 -0
- keboola_agent_cli/commands/http_client.py +157 -0
- keboola_agent_cli/commands/init.py +279 -0
- keboola_agent_cli/commands/job.py +661 -0
- keboola_agent_cli/commands/kai.py +301 -0
- keboola_agent_cli/commands/lineage.py +1464 -0
- keboola_agent_cli/commands/org.py +292 -0
- keboola_agent_cli/commands/permissions.py +360 -0
- keboola_agent_cli/commands/project.py +1192 -0
- keboola_agent_cli/commands/repl.py +243 -0
- keboola_agent_cli/commands/schedule.py +340 -0
- keboola_agent_cli/commands/search.py +178 -0
- keboola_agent_cli/commands/semantic_layer.py +939 -0
- keboola_agent_cli/commands/serve.py +272 -0
- keboola_agent_cli/commands/sharing.py +340 -0
- keboola_agent_cli/commands/storage.py +2630 -0
- keboola_agent_cli/commands/stream.py +266 -0
- keboola_agent_cli/commands/sync.py +1277 -0
- keboola_agent_cli/commands/tool.py +206 -0
- keboola_agent_cli/commands/version.py +186 -0
- keboola_agent_cli/commands/workspace.py +635 -0
- keboola_agent_cli/config_store.py +582 -0
- keboola_agent_cli/constants.py +528 -0
- keboola_agent_cli/data_science_client.py +342 -0
- keboola_agent_cli/dev_portal_client.py +323 -0
- keboola_agent_cli/errors.py +248 -0
- keboola_agent_cli/http_base.py +315 -0
- keboola_agent_cli/json_utils.py +126 -0
- keboola_agent_cli/lib.py +536 -0
- keboola_agent_cli/manage_client.py +324 -0
- keboola_agent_cli/metastore_client.py +214 -0
- keboola_agent_cli/models.py +427 -0
- keboola_agent_cli/output.py +1084 -0
- keboola_agent_cli/permissions.py +469 -0
- keboola_agent_cli/py.typed +3 -0
- keboola_agent_cli/result_models.py +271 -0
- keboola_agent_cli/server/__init__.py +34 -0
- keboola_agent_cli/server/agent_runner.py +1289 -0
- keboola_agent_cli/server/agents_store.py +325 -0
- keboola_agent_cli/server/app.py +764 -0
- keboola_agent_cli/server/auth.py +117 -0
- keboola_agent_cli/server/dependencies.py +149 -0
- keboola_agent_cli/server/pricing.py +303 -0
- keboola_agent_cli/server/routers/__init__.py +1 -0
- keboola_agent_cli/server/routers/agents.py +616 -0
- keboola_agent_cli/server/routers/ai_chat.py +129 -0
- keboola_agent_cli/server/routers/branches.py +133 -0
- keboola_agent_cli/server/routers/components.py +48 -0
- keboola_agent_cli/server/routers/configs.py +507 -0
- keboola_agent_cli/server/routers/data_apps.py +384 -0
- keboola_agent_cli/server/routers/dev_portal.py +67 -0
- keboola_agent_cli/server/routers/encrypt.py +35 -0
- keboola_agent_cli/server/routers/feature.py +179 -0
- keboola_agent_cli/server/routers/flows.py +204 -0
- keboola_agent_cli/server/routers/health.py +53 -0
- keboola_agent_cli/server/routers/jobs.py +175 -0
- keboola_agent_cli/server/routers/kai.py +80 -0
- keboola_agent_cli/server/routers/lineage.py +226 -0
- keboola_agent_cli/server/routers/mcp.py +70 -0
- keboola_agent_cli/server/routers/members.py +170 -0
- keboola_agent_cli/server/routers/org.py +96 -0
- keboola_agent_cli/server/routers/projects.py +106 -0
- keboola_agent_cli/server/routers/schedules.py +54 -0
- keboola_agent_cli/server/routers/search.py +30 -0
- keboola_agent_cli/server/routers/semantic_layer.py +650 -0
- keboola_agent_cli/server/routers/sharing.py +86 -0
- keboola_agent_cli/server/routers/storage.py +574 -0
- keboola_agent_cli/server/routers/stream.py +100 -0
- keboola_agent_cli/server/routers/workspaces.py +302 -0
- keboola_agent_cli/server/run_broadcaster.py +329 -0
- keboola_agent_cli/server/sse.py +25 -0
- keboola_agent_cli/services/__init__.py +0 -0
- keboola_agent_cli/services/_encryption.py +217 -0
- keboola_agent_cli/services/_semantic_layer_cascade.py +147 -0
- keboola_agent_cli/services/_semantic_layer_crud.py +382 -0
- keboola_agent_cli/services/_semantic_layer_internals.py +1078 -0
- keboola_agent_cli/services/_semantic_layer_lookup.py +181 -0
- keboola_agent_cli/services/_semantic_layer_reference_data.py +217 -0
- keboola_agent_cli/services/_sync_bindings.py +456 -0
- keboola_agent_cli/services/_sync_branch.py +191 -0
- keboola_agent_cli/services/_sync_bulk.py +228 -0
- keboola_agent_cli/services/_sync_clone.py +163 -0
- keboola_agent_cli/services/_sync_models.py +97 -0
- keboola_agent_cli/services/_sync_push_ops.py +369 -0
- keboola_agent_cli/services/_sync_storage.py +376 -0
- keboola_agent_cli/services/_sync_writeback.py +167 -0
- keboola_agent_cli/services/agent_service.py +458 -0
- keboola_agent_cli/services/base.py +175 -0
- keboola_agent_cli/services/branch_service.py +588 -0
- keboola_agent_cli/services/component_service.py +694 -0
- keboola_agent_cli/services/config_service.py +2099 -0
- keboola_agent_cli/services/data_app_git_service.py +224 -0
- keboola_agent_cli/services/data_app_service.py +2082 -0
- keboola_agent_cli/services/deep_lineage_service.py +1322 -0
- keboola_agent_cli/services/dev_portal_service.py +345 -0
- keboola_agent_cli/services/doctor_service.py +445 -0
- keboola_agent_cli/services/encrypt_service.py +87 -0
- keboola_agent_cli/services/feature_service.py +268 -0
- keboola_agent_cli/services/flow_service.py +769 -0
- keboola_agent_cli/services/flow_validation.py +188 -0
- keboola_agent_cli/services/http_forwarder_service.py +236 -0
- keboola_agent_cli/services/job_idempotency_store.py +285 -0
- keboola_agent_cli/services/job_service.py +797 -0
- keboola_agent_cli/services/kai_service.py +367 -0
- keboola_agent_cli/services/lineage_service.py +274 -0
- keboola_agent_cli/services/mcp_service.py +1498 -0
- keboola_agent_cli/services/mcp_transport.py +259 -0
- keboola_agent_cli/services/member_service.py +593 -0
- keboola_agent_cli/services/org_service.py +619 -0
- keboola_agent_cli/services/project_service.py +947 -0
- keboola_agent_cli/services/repo_validate_service.py +767 -0
- keboola_agent_cli/services/schedule_service.py +731 -0
- keboola_agent_cli/services/search_service.py +331 -0
- keboola_agent_cli/services/semantic_layer_service.py +1497 -0
- keboola_agent_cli/services/sharing_service.py +307 -0
- keboola_agent_cli/services/storage_service.py +2524 -0
- keboola_agent_cli/services/stream_service.py +395 -0
- keboola_agent_cli/services/sync_service.py +2244 -0
- keboola_agent_cli/services/variables_service.py +447 -0
- keboola_agent_cli/services/version_service.py +1038 -0
- keboola_agent_cli/services/workspace_service.py +1103 -0
- keboola_agent_cli/stream_client.py +217 -0
- keboola_agent_cli/sync/__init__.py +1 -0
- keboola_agent_cli/sync/branch_mapping.py +174 -0
- keboola_agent_cli/sync/clone.py +211 -0
- keboola_agent_cli/sync/code_extraction.py +655 -0
- keboola_agent_cli/sync/config_format.py +290 -0
- keboola_agent_cli/sync/diff_engine.py +566 -0
- keboola_agent_cli/sync/git_utils.py +93 -0
- keboola_agent_cli/sync/manifest.py +162 -0
- keboola_agent_cli/sync/naming.py +90 -0
- keboola_agent_cli/sync/secrets.py +62 -0
- keboola_agent_cli/sync/sql_split.py +134 -0
- keboola_cli-0.63.4.dist-info/METADATA +308 -0
- keboola_cli-0.63.4.dist-info/RECORD +306 -0
- keboola_cli-0.63.4.dist-info/WHEEL +4 -0
- keboola_cli-0.63.4.dist-info/entry_points.txt +2 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
"""Typed return models for the in-process SDK facade (issue #428).
|
|
2
|
+
|
|
3
|
+
These pydantic models document the **stable** return shapes of the high-traffic
|
|
4
|
+
service / facade operations. They are exported from the package root so a
|
|
5
|
+
downstream in-process consumer (a Keboola Data App, a transformation, a hosted
|
|
6
|
+
service, the FIIA Scaffold Kit) gets static typing (mypy / IDE autocomplete) and
|
|
7
|
+
a semver-versioned contract instead of coupling to undocumented
|
|
8
|
+
``dict[str, Any]`` shapes -- a contract change then surfaces at type-check time,
|
|
9
|
+
not at runtime against a customer build.
|
|
10
|
+
|
|
11
|
+
Every model sets ``extra="allow"``: the backing Keboola APIs grow fields across
|
|
12
|
+
stack versions, and an SDK contract must not raise when the server returns more
|
|
13
|
+
than the documented subset. Extra keys are preserved (reachable via attribute
|
|
14
|
+
access and ``model_dump()``), so nothing is lost -- only the **named** fields are
|
|
15
|
+
the committed, semver-stable surface. ``populate_by_name=True`` means each model
|
|
16
|
+
accepts both the snake_case field name and the raw API key (declared via
|
|
17
|
+
``AliasChoices``), so ``Model.model_validate(service_dict)`` works directly on a
|
|
18
|
+
service-layer dict without renaming.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
from typing import Any
|
|
22
|
+
|
|
23
|
+
from pydantic import AliasChoices, BaseModel, ConfigDict, Field
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class _ApiResultModel(BaseModel):
|
|
27
|
+
"""Base for SDK result contracts: tolerant of unknown / extra API fields.
|
|
28
|
+
|
|
29
|
+
Subclasses type only the stable subset; everything else the API returns is
|
|
30
|
+
kept as model extras (``extra="allow"``) rather than dropped or raised on.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class JobResult(_ApiResultModel):
|
|
37
|
+
"""Result of running a Queue API job.
|
|
38
|
+
|
|
39
|
+
Returned by :meth:`keboola_agent_cli.Client.run_job` and produced by
|
|
40
|
+
``JobService.run_job``. The named fields below are the committed contract;
|
|
41
|
+
everything else the Queue API returns (``branchId``, ``createdTime``,
|
|
42
|
+
``startTime``, ``endTime``, ``durationSeconds``, ``runId``, ``url``, ...) is
|
|
43
|
+
preserved as model extras.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
id: str = Field(default="", description="Queue job ID.")
|
|
47
|
+
status: str = Field(
|
|
48
|
+
default="",
|
|
49
|
+
description=(
|
|
50
|
+
"Job status: created | waiting | processing | success | error | warning | terminated."
|
|
51
|
+
),
|
|
52
|
+
)
|
|
53
|
+
is_finished: bool = Field(
|
|
54
|
+
default=False,
|
|
55
|
+
validation_alias=AliasChoices("isFinished", "is_finished"),
|
|
56
|
+
description="True once the job reached a terminal state.",
|
|
57
|
+
)
|
|
58
|
+
component_id: str = Field(
|
|
59
|
+
default="",
|
|
60
|
+
validation_alias=AliasChoices("component", "componentId", "component_id"),
|
|
61
|
+
description="Component that ran.",
|
|
62
|
+
)
|
|
63
|
+
config_id: str = Field(
|
|
64
|
+
default="",
|
|
65
|
+
validation_alias=AliasChoices("configId", "config", "config_id"),
|
|
66
|
+
description="Configuration that ran.",
|
|
67
|
+
)
|
|
68
|
+
mode: str = Field(default="", description="Job mode: run | debug | forceRun.")
|
|
69
|
+
result: dict[str, Any] | None = Field(
|
|
70
|
+
default=None,
|
|
71
|
+
description="Component result payload (message, import stats, ...) when present.",
|
|
72
|
+
)
|
|
73
|
+
project_alias: str = Field(
|
|
74
|
+
default="",
|
|
75
|
+
description=(
|
|
76
|
+
"Project alias the job ran in (CLI / service path). Empty for the "
|
|
77
|
+
"in-process facade, which is not config-dir aware."
|
|
78
|
+
),
|
|
79
|
+
)
|
|
80
|
+
resolved_variable_values_id: str | None = Field(
|
|
81
|
+
default=None,
|
|
82
|
+
validation_alias=AliasChoices("resolvedVariableValuesId", "resolved_variable_values_id"),
|
|
83
|
+
description="Values row resolved for linked variables, if any.",
|
|
84
|
+
)
|
|
85
|
+
log_tail: list[dict[str, Any]] | None = Field(
|
|
86
|
+
default=None,
|
|
87
|
+
validation_alias=AliasChoices("logTail", "log_tail"),
|
|
88
|
+
description="Trailing job events surfaced on a non-success terminal state (wait mode).",
|
|
89
|
+
)
|
|
90
|
+
idempotent_replay: bool = Field(
|
|
91
|
+
default=False,
|
|
92
|
+
description=(
|
|
93
|
+
"True when this job was returned from a prior run via a matching "
|
|
94
|
+
"idempotency key (issue #427) rather than freshly created -- i.e. no "
|
|
95
|
+
"new side effect was fired."
|
|
96
|
+
),
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
@property
|
|
100
|
+
def succeeded(self) -> bool:
|
|
101
|
+
"""True iff the job finished in the ``success`` state."""
|
|
102
|
+
return self.status == "success"
|
|
103
|
+
|
|
104
|
+
@property
|
|
105
|
+
def failed(self) -> bool:
|
|
106
|
+
"""True iff the job finished in a terminal failure state."""
|
|
107
|
+
return self.status in {"error", "terminated", "cancelled"}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class QueryResult(_ApiResultModel):
|
|
111
|
+
"""Tabular result of a workspace SQL query.
|
|
112
|
+
|
|
113
|
+
Returned by :meth:`keboola_agent_cli.Client.query_result`. Carries the
|
|
114
|
+
column order and truncation metadata that the plain ``Client.query`` (which
|
|
115
|
+
returns ``list[dict]``) drops. Values are **not** coerced -- for Snowflake
|
|
116
|
+
every scalar comes back as a string (see the ``query()`` docstring / gotchas).
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
columns: list[str] = Field(
|
|
120
|
+
default_factory=list, description="Result column names, in warehouse order."
|
|
121
|
+
)
|
|
122
|
+
rows: list[dict[str, Any]] = Field(
|
|
123
|
+
default_factory=list, description="Rows as dicts keyed by column name."
|
|
124
|
+
)
|
|
125
|
+
truncated: bool = Field(
|
|
126
|
+
default=False,
|
|
127
|
+
description="True if the result was capped at the requested ``limit``.",
|
|
128
|
+
)
|
|
129
|
+
total_rows: int | None = Field(
|
|
130
|
+
default=None,
|
|
131
|
+
description="Total rows the warehouse reported for the statement, when known.",
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def row_count(self) -> int:
|
|
136
|
+
"""Number of rows actually returned (after any ``limit`` cap)."""
|
|
137
|
+
return len(self.rows)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
class UploadTableResult(_ApiResultModel):
|
|
141
|
+
"""Result of importing a CSV into a Storage table.
|
|
142
|
+
|
|
143
|
+
Returned by :meth:`keboola_agent_cli.Client.upload_table` and produced by
|
|
144
|
+
``StorageService.upload_table``. The ``auto_created_*`` flags are only set by
|
|
145
|
+
the service path (which can create a missing bucket/table); the in-process
|
|
146
|
+
facade requires the table to exist and leaves them ``False``.
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
table_id: str = Field(default="", description="Target table ID.")
|
|
150
|
+
incremental: bool = Field(default=False, description="True = rows appended; False = full load.")
|
|
151
|
+
imported_rows: int | None = Field(
|
|
152
|
+
default=None,
|
|
153
|
+
validation_alias=AliasChoices("imported_rows", "importedRowsCount"),
|
|
154
|
+
description="Rows imported, when the backend reports a count.",
|
|
155
|
+
)
|
|
156
|
+
file_size_bytes: int | None = Field(
|
|
157
|
+
default=None, description="Size of the uploaded CSV on disk."
|
|
158
|
+
)
|
|
159
|
+
warnings: list[Any] = Field(
|
|
160
|
+
default_factory=list, description="Import warnings surfaced by Storage."
|
|
161
|
+
)
|
|
162
|
+
auto_created_bucket: bool = Field(
|
|
163
|
+
default=False, description="True if the service path created the bucket."
|
|
164
|
+
)
|
|
165
|
+
auto_created_table: bool = Field(
|
|
166
|
+
default=False, description="True if the service path created the table."
|
|
167
|
+
)
|
|
168
|
+
project_alias: str = Field(
|
|
169
|
+
default="", description="Project alias (service path; empty for the facade)."
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
class SyncPushResult(_ApiResultModel):
|
|
174
|
+
"""Result of a GitOps ``sync push``.
|
|
175
|
+
|
|
176
|
+
Documents the shape of ``SyncService.push`` and is embedded in
|
|
177
|
+
``CloneResult`` (issue #426). ``status`` is ``pushed`` | ``no_changes`` |
|
|
178
|
+
``dry_run``; the counters and ``pushed_details`` describe what changed.
|
|
179
|
+
"""
|
|
180
|
+
|
|
181
|
+
status: str = Field(default="", description="pushed | no_changes | dry_run.")
|
|
182
|
+
created: int = Field(default=0, description="Configs/rows created.")
|
|
183
|
+
updated: int = Field(default=0, description="Configs/rows updated.")
|
|
184
|
+
deleted: int = Field(default=0, description="Configs/rows deleted.")
|
|
185
|
+
errors: list[dict[str, Any]] = Field(
|
|
186
|
+
default_factory=list,
|
|
187
|
+
description="Per-change failures (change_type, component_id, config_id, message).",
|
|
188
|
+
)
|
|
189
|
+
pushed_details: list[dict[str, Any]] = Field(
|
|
190
|
+
default_factory=list, description="One entry per applied change."
|
|
191
|
+
)
|
|
192
|
+
name_drift_warnings: list[dict[str, Any]] = Field(
|
|
193
|
+
default_factory=list,
|
|
194
|
+
description="Local-vs-remote name drift warnings, when surfaced.",
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
@property
|
|
198
|
+
def ok(self) -> bool:
|
|
199
|
+
"""True iff the push completed with no per-change errors."""
|
|
200
|
+
return not self.errors
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
class CloneResult(_ApiResultModel):
|
|
204
|
+
"""Result of a ``sync clone`` composite (issue #426).
|
|
205
|
+
|
|
206
|
+
Returned by ``SyncService.clone_project``. ``status`` is ``cloned`` (configs
|
|
207
|
+
created), ``no_changes`` (idempotent re-run -- nothing left to create), or
|
|
208
|
+
``dry_run``. The embedded ``push`` is the underlying ``SyncPushResult``.
|
|
209
|
+
"""
|
|
210
|
+
|
|
211
|
+
status: str = Field(default="", description="cloned | no_changes | dry_run.")
|
|
212
|
+
target_alias: str = Field(default="", description="Project the clone was pushed into.")
|
|
213
|
+
target_dir: str = Field(default="", description="Where the clone was materialised.")
|
|
214
|
+
created: int = Field(default=0, description="Configs/rows created in the target.")
|
|
215
|
+
bucket_rewrites: int = Field(
|
|
216
|
+
default=0, description="Table references rewritten by the bucket_map override."
|
|
217
|
+
)
|
|
218
|
+
variable_overrides: int = Field(default=0, description="keboola.variables values overridden.")
|
|
219
|
+
renamed_instances: int = Field(
|
|
220
|
+
default=0, description="Config paths renamed by the instance_rename override."
|
|
221
|
+
)
|
|
222
|
+
flow_task_remaps: int = Field(
|
|
223
|
+
default=0, description="keboola.flow task configIds remapped reference->ULID."
|
|
224
|
+
)
|
|
225
|
+
push: SyncPushResult | None = Field(
|
|
226
|
+
default=None, description="The underlying sync push result (None for dry_run)."
|
|
227
|
+
)
|
|
228
|
+
errors: list[dict[str, Any]] = Field(
|
|
229
|
+
default_factory=list, description="Per-change push errors, if any."
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
@property
|
|
233
|
+
def ok(self) -> bool:
|
|
234
|
+
"""True iff the clone completed with no errors."""
|
|
235
|
+
return not self.errors
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
class ConfigDetailResult(_ApiResultModel):
|
|
239
|
+
"""Detail of a single configuration.
|
|
240
|
+
|
|
241
|
+
Returned by :meth:`keboola_agent_cli.Client.config_detail` and produced by
|
|
242
|
+
``ConfigService.get_config_detail`` in single-config mode. ``id`` is the
|
|
243
|
+
configuration ID (Storage returns it under ``id``); the full Storage detail
|
|
244
|
+
(``created``, ``isDisabled``, ``state``, ...) is preserved as extras.
|
|
245
|
+
"""
|
|
246
|
+
|
|
247
|
+
id: str = Field(default="", description="Configuration ID.")
|
|
248
|
+
name: str = Field(default="", description="Configuration name.")
|
|
249
|
+
description: str = Field(default="", description="Configuration description.")
|
|
250
|
+
version: int | None = Field(
|
|
251
|
+
default=None,
|
|
252
|
+
validation_alias=AliasChoices("version", "currentVersion"),
|
|
253
|
+
description="Current configuration version.",
|
|
254
|
+
)
|
|
255
|
+
configuration: dict[str, Any] = Field(
|
|
256
|
+
default_factory=dict, description="The configuration body."
|
|
257
|
+
)
|
|
258
|
+
rows: list[dict[str, Any]] = Field(
|
|
259
|
+
default_factory=list, description="Config rows, when the config has any."
|
|
260
|
+
)
|
|
261
|
+
component_id: str = Field(
|
|
262
|
+
default="",
|
|
263
|
+
validation_alias=AliasChoices("component_id", "componentId"),
|
|
264
|
+
description="Owning component ID.",
|
|
265
|
+
)
|
|
266
|
+
project_alias: str = Field(
|
|
267
|
+
default="", description="Project alias (service path; empty for the facade)."
|
|
268
|
+
)
|
|
269
|
+
branch_id: int | None = Field(
|
|
270
|
+
default=None, description="Dev branch ID the detail was read from (None = production)."
|
|
271
|
+
)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Server package.
|
|
2
|
+
|
|
3
|
+
Lazy attribute access via PEP 562 so importing helpers like
|
|
4
|
+
``from keboola_agent_cli.server.agents_store import AgentStore`` does NOT
|
|
5
|
+
drag in FastAPI/uvicorn. Those heavy deps are loaded only when
|
|
6
|
+
``create_app`` is actually fetched (typically by ``kbagent serve`` or
|
|
7
|
+
the FastAPI test suite).
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
from typing import TYPE_CHECKING, Any
|
|
13
|
+
|
|
14
|
+
__all__ = ["create_app"]
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
# Imported for type checkers only -- never executed at runtime, so
|
|
18
|
+
# FastAPI stays absent from the CLI-only path.
|
|
19
|
+
from .app import create_app
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def __getattr__(name: str) -> Any:
|
|
23
|
+
"""PEP 562 lazy export of FastAPI-dependent symbols.
|
|
24
|
+
|
|
25
|
+
Tests + the ``serve`` command can still use the canonical
|
|
26
|
+
``from keboola_agent_cli.server import create_app`` form, but importing
|
|
27
|
+
pure-logic siblings (``agents_store``, ``agent_runner``, ``pricing``)
|
|
28
|
+
no longer pays the FastAPI import tax.
|
|
29
|
+
"""
|
|
30
|
+
if name == "create_app":
|
|
31
|
+
from .app import create_app
|
|
32
|
+
|
|
33
|
+
return create_app
|
|
34
|
+
raise AttributeError(f"module 'keboola_agent_cli.server' has no attribute {name!r}")
|