qalita 2.9.0__py3-none-any.whl → 2.9.2__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.
- qalita/_frontend/.next/BUILD_ID +1 -1
- qalita/_frontend/.next/build-manifest.json +7 -7
- qalita/_frontend/.next/prerender-manifest.json +3 -3
- qalita/_frontend/.next/required-server-files.json +196 -40
- qalita/_frontend/.next/server/app/_global-error/page/build-manifest.json +5 -5
- qalita/_frontend/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- qalita/_frontend/.next/server/app/_global-error.html +2 -2
- qalita/_frontend/.next/server/app/_global-error.rsc +7 -7
- qalita/_frontend/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- qalita/_frontend/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- qalita/_frontend/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- qalita/_frontend/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- qalita/_frontend/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- qalita/_frontend/.next/server/app/_not-found/page/build-manifest.json +5 -5
- qalita/_frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- qalita/_frontend/.next/server/app/_not-found.html +1 -1
- qalita/_frontend/.next/server/app/_not-found.rsc +8 -8
- qalita/_frontend/.next/server/app/_not-found.segments/_full.segment.rsc +8 -8
- qalita/_frontend/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- qalita/_frontend/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- qalita/_frontend/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- qalita/_frontend/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- qalita/_frontend/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- qalita/_frontend/.next/server/app/page/build-manifest.json +5 -5
- qalita/_frontend/.next/server/app/page_client-reference-manifest.js +1 -1
- qalita/_frontend/.next/server/app/sources/add/page/build-manifest.json +5 -5
- qalita/_frontend/.next/server/app/sources/add/page_client-reference-manifest.js +1 -1
- qalita/_frontend/.next/server/app/sources/add.html +1 -1
- qalita/_frontend/.next/server/app/sources/add.rsc +10 -10
- qalita/_frontend/.next/server/app/sources/add.segments/_full.segment.rsc +10 -10
- qalita/_frontend/.next/server/app/sources/add.segments/_head.segment.rsc +3 -3
- qalita/_frontend/.next/server/app/sources/add.segments/_index.segment.rsc +4 -4
- qalita/_frontend/.next/server/app/sources/add.segments/_tree.segment.rsc +1 -1
- qalita/_frontend/.next/server/app/sources/add.segments/sources/add/__PAGE__.segment.rsc +4 -4
- qalita/_frontend/.next/server/app/sources/add.segments/sources/add.segment.rsc +3 -3
- qalita/_frontend/.next/server/app/sources/add.segments/sources.segment.rsc +3 -3
- qalita/_frontend/.next/server/app/sources/edit/[id]/page/build-manifest.json +5 -5
- qalita/_frontend/.next/server/app/sources/edit/[id]/page_client-reference-manifest.js +1 -1
- qalita/_frontend/.next/server/app/sources/page/build-manifest.json +5 -5
- qalita/_frontend/.next/server/app/sources/page_client-reference-manifest.js +1 -1
- qalita/_frontend/.next/server/app/sources.html +1 -1
- qalita/_frontend/.next/server/app/sources.rsc +10 -10
- qalita/_frontend/.next/server/app/sources.segments/_full.segment.rsc +10 -10
- qalita/_frontend/.next/server/app/sources.segments/_head.segment.rsc +3 -3
- qalita/_frontend/.next/server/app/sources.segments/_index.segment.rsc +4 -4
- qalita/_frontend/.next/server/app/sources.segments/_tree.segment.rsc +1 -1
- qalita/_frontend/.next/server/app/sources.segments/sources/__PAGE__.segment.rsc +4 -4
- qalita/_frontend/.next/server/app/sources.segments/sources.segment.rsc +3 -3
- qalita/_frontend/.next/server/chunks/[root-of-the-server]__bf0c3d33._.js +3 -3
- qalita/_frontend/.next/server/chunks/[root-of-the-server]__f408c708._.js +2 -2
- qalita/_frontend/.next/server/chunks/ssr/_404f6e81._.js +2 -2
- qalita/_frontend/.next/server/chunks/ssr/_6a67f6f0._.js +2 -2
- qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_4b9a0874._.js +1 -1
- qalita/_frontend/.next/server/middleware-build-manifest.js +5 -5
- qalita/_frontend/.next/server/pages/404.html +1 -1
- qalita/_frontend/.next/server/pages/500.html +2 -2
- qalita/_frontend/.next/server/server-reference-manifest.js +1 -1
- qalita/_frontend/.next/server/server-reference-manifest.json +1 -1
- qalita/_frontend/.next/static/chunks/0c7542414b6a6f86.js +2 -0
- qalita/_frontend/.next/static/chunks/{89ba62a8ba9b79ce.js → 12daa96885968840.js} +1 -1
- qalita/_frontend/.next/static/chunks/694836347d1e5ef3.js +1 -0
- qalita/_frontend/.next/static/chunks/7ea91ca84dc4b3a4.js +1 -0
- qalita/_frontend/.next/static/chunks/9e71bf77f23416e6.js +1 -0
- qalita/_frontend/.next/static/chunks/aa2a44cc19d89bdb.js +1 -0
- qalita/_frontend/.next/static/chunks/bb05964d928aa166.js +3 -0
- qalita/_frontend/.next/static/chunks/ecbb64dc112ad516.js +1 -0
- qalita/_frontend/.next/static/chunks/turbopack-9fc8bcb3a9806c66.js +4 -0
- qalita/_frontend/node_modules/@next/env/package.json +1 -1
- qalita/_frontend/node_modules/next/dist/build/index.js +10 -4
- qalita/_frontend/node_modules/next/dist/build/swc/index.js +1 -1
- qalita/_frontend/node_modules/next/dist/build/webpack-config.js +3 -3
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/lru.js +2 -0
- qalita/_frontend/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
- qalita/_frontend/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
- qalita/_frontend/node_modules/next/dist/server/config-shared.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
- qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- qalita/_frontend/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- qalita/_frontend/node_modules/next/dist/server/lib/start-server.js +1 -1
- qalita/_frontend/node_modules/next/dist/server/web/adapter.js +1 -1
- qalita/_frontend/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- qalita/_frontend/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- qalita/_frontend/node_modules/next/dist/telemetry/events/version.js +2 -2
- qalita/_frontend/node_modules/next/package.json +15 -15
- qalita/_frontend/package.json +4 -4
- qalita/_frontend/server.js +1 -1
- qalita/commands/worker.py +11 -10
- qalita/commands/worker_grpc.py +110 -0
- qalita/grpc/client.py +42 -2
- qalita/grpc/protos/qalita.proto +26 -0
- qalita/grpc/protos/qalita_pb2.py +80 -76
- qalita/grpc/protos/qalita_pb2_grpc.py +1 -1
- qalita/internal/action_executor.py +896 -0
- qalita/internal/utils.py +1 -1
- {qalita-2.9.0.dist-info → qalita-2.9.2.dist-info}/METADATA +3 -3
- {qalita-2.9.0.dist-info → qalita-2.9.2.dist-info}/RECORD +102 -101
- qalita/_frontend/.next/static/chunks/0b082245f106d665.js +0 -1
- qalita/_frontend/.next/static/chunks/58689c96b0676c41.js +0 -1
- qalita/_frontend/.next/static/chunks/acc5da18ff20daa1.js +0 -3
- qalita/_frontend/.next/static/chunks/bdc8a8e7721f5675.js +0 -2
- qalita/_frontend/.next/static/chunks/e0df86cbf44bbf9f.js +0 -1
- qalita/_frontend/.next/static/chunks/e6ce59ba40b863f2.js +0 -1
- qalita/_frontend/.next/static/chunks/ec4b1f1e3cd3ae43.js +0 -1
- qalita/_frontend/.next/static/chunks/turbopack-d21156d03715fafa.js +0 -4
- /qalita/_frontend/.next/static/{rObHWX45g5zAJ7RtwthzS → SlJmHVnRND1B7HlzvPJuC}/_buildManifest.js +0 -0
- /qalita/_frontend/.next/static/{rObHWX45g5zAJ7RtwthzS → SlJmHVnRND1B7HlzvPJuC}/_clientMiddlewareManifest.json +0 -0
- /qalita/_frontend/.next/static/{rObHWX45g5zAJ7RtwthzS → SlJmHVnRND1B7HlzvPJuC}/_ssgManifest.js +0 -0
- {qalita-2.9.0.dist-info → qalita-2.9.2.dist-info}/WHEEL +0 -0
- {qalita-2.9.0.dist-info → qalita-2.9.2.dist-info}/entry_points.txt +0 -0
- {qalita-2.9.0.dist-info → qalita-2.9.2.dist-info}/licenses/LICENSE +0 -0
qalita/_frontend/package.json
CHANGED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"@tailwindcss/forms": "^0.5.10",
|
|
17
17
|
"class-variance-authority": "^0.7.1",
|
|
18
18
|
"clsx": "^2.1.1",
|
|
19
|
-
"lucide-react": "^0.
|
|
20
|
-
"next": "16.1.
|
|
19
|
+
"lucide-react": "^0.563.0",
|
|
20
|
+
"next": "16.1.4",
|
|
21
21
|
"next-themes": "^0.4.6",
|
|
22
22
|
"react": "^19.2.3",
|
|
23
23
|
"react-dom": "^19.2.3",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"tailwindcss-animate": "^1.0.7"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@types/node": "^25.0.
|
|
32
|
-
"@types/react": "^19.2.
|
|
31
|
+
"@types/node": "^25.0.10",
|
|
32
|
+
"@types/react": "^19.2.9",
|
|
33
33
|
"@types/react-dom": "^19.2.3",
|
|
34
34
|
"autoprefixer": "^10.4.23",
|
|
35
35
|
"postcss": "^8.5.6",
|
qalita/_frontend/server.js
CHANGED
|
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
9
9
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
10
10
|
|
|
11
11
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
12
|
-
const nextConfig = {"distDir":"./.next","
|
|
12
|
+
const nextConfig = {"env":{},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.js","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":true,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/qalita-cli/qalita-cli/frontend","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":1,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.js","turbopack":{"root":"/home/runner/work/qalita-cli/qalita-cli/frontend"},"distDirRoot":".next"}
|
|
13
13
|
|
|
14
14
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
15
15
|
|
qalita/commands/worker.py
CHANGED
|
@@ -352,6 +352,17 @@ def login(config):
|
|
|
352
352
|
if config.verbose:
|
|
353
353
|
logger.info("Verbose mode enabled")
|
|
354
354
|
|
|
355
|
+
# Update .current_env BEFORE authenticate() so that send_api_request uses the correct URL
|
|
356
|
+
# This fixes the bug where send_api_request would read an outdated .current_env
|
|
357
|
+
env_file_path = getattr(config, "_env_file_path", None)
|
|
358
|
+
if env_file_path:
|
|
359
|
+
current_env_path = os.path.join(config.qalita_home, ".current_env")
|
|
360
|
+
try:
|
|
361
|
+
with open(current_env_path, "w", encoding="utf-8") as f:
|
|
362
|
+
f.write(env_file_path)
|
|
363
|
+
except Exception:
|
|
364
|
+
pass # Non-critical - UI will still work with .worker file
|
|
365
|
+
|
|
355
366
|
validated_info = validate_token(config.token)
|
|
356
367
|
|
|
357
368
|
# check API endpoint version
|
|
@@ -367,16 +378,6 @@ def login(config):
|
|
|
367
378
|
agent_conf = config.load_worker_config()
|
|
368
379
|
send_alive(config_file=agent_conf)
|
|
369
380
|
|
|
370
|
-
# Update .current_env to point to the used env file for UI consistency
|
|
371
|
-
env_file_path = getattr(config, "_env_file_path", None)
|
|
372
|
-
if env_file_path:
|
|
373
|
-
current_env_path = os.path.join(config.qalita_home, ".current_env")
|
|
374
|
-
try:
|
|
375
|
-
with open(current_env_path, "w", encoding="utf-8") as f:
|
|
376
|
-
f.write(env_file_path)
|
|
377
|
-
except Exception:
|
|
378
|
-
pass # Non-critical - UI will still work with .worker file
|
|
379
|
-
|
|
380
381
|
|
|
381
382
|
@worker.command()
|
|
382
383
|
@pass_config
|
qalita/commands/worker_grpc.py
CHANGED
|
@@ -21,6 +21,7 @@ import croniter
|
|
|
21
21
|
from qalita.internal.utils import logger, get_version, validate_token
|
|
22
22
|
from qalita.internal.request import send_request
|
|
23
23
|
from qalita.internal.data_preview import preview_source, DataPreviewResult
|
|
24
|
+
from qalita.internal.action_executor import get_action_executor, ActionResult
|
|
24
25
|
from qalita.grpc import GrpcClient
|
|
25
26
|
from qalita.grpc.protos import qalita_pb2
|
|
26
27
|
from qalita.commands.pack import run_pack
|
|
@@ -194,6 +195,7 @@ class GrpcWorkerRunner:
|
|
|
194
195
|
self.grpc_client.on_routine_received(self._handle_routine_trigger)
|
|
195
196
|
self.grpc_client.on_data_preview_request(self._handle_data_preview_request)
|
|
196
197
|
self.grpc_client.on_add_source_request(self._handle_add_source_request)
|
|
198
|
+
self.grpc_client.on_agent_action_request(self._handle_agent_action_request)
|
|
197
199
|
self.grpc_client.on_disconnect(self._handle_disconnect)
|
|
198
200
|
|
|
199
201
|
try:
|
|
@@ -620,6 +622,114 @@ class GrpcWorkerRunner:
|
|
|
620
622
|
connectivity_verified=False,
|
|
621
623
|
)
|
|
622
624
|
|
|
625
|
+
async def _handle_agent_action_request(self, request: qalita_pb2.AgentActionRequest) -> None:
|
|
626
|
+
"""
|
|
627
|
+
Handle an agent action request from the platform.
|
|
628
|
+
|
|
629
|
+
This is called when the Studio LLM agent requests to execute an action
|
|
630
|
+
on a data source (e.g., SQL query, read data, describe schema).
|
|
631
|
+
The worker:
|
|
632
|
+
1. Finds the source configuration locally
|
|
633
|
+
2. Executes the action using the ActionExecutor
|
|
634
|
+
3. Sends back an AgentActionResponse via gRPC stream
|
|
635
|
+
"""
|
|
636
|
+
request_id = request.request_id
|
|
637
|
+
action_type = request.action_type
|
|
638
|
+
source_id = request.source_id
|
|
639
|
+
params_json = request.parameters_json
|
|
640
|
+
timeout = request.timeout_seconds if request.HasField('timeout_seconds') else None
|
|
641
|
+
|
|
642
|
+
logger.info(f"Processing agent action request {request_id}: {action_type} on source {source_id}")
|
|
643
|
+
|
|
644
|
+
try:
|
|
645
|
+
# Parse parameters
|
|
646
|
+
params = json.loads(params_json) if params_json else {}
|
|
647
|
+
|
|
648
|
+
# Find the source in local configuration
|
|
649
|
+
source_conf = self.config.load_source_config(verbose=False)
|
|
650
|
+
matching_sources = [
|
|
651
|
+
s for s in source_conf.get("sources", [])
|
|
652
|
+
if str(s.get("id")) == str(source_id)
|
|
653
|
+
]
|
|
654
|
+
|
|
655
|
+
if not matching_sources:
|
|
656
|
+
logger.warning(f"Source {source_id} not found in local config")
|
|
657
|
+
await self.grpc_client.send_agent_action_response(
|
|
658
|
+
request_id=request_id,
|
|
659
|
+
ok=False,
|
|
660
|
+
action_type=action_type,
|
|
661
|
+
error=f"Source {source_id} not found in local configuration",
|
|
662
|
+
)
|
|
663
|
+
return
|
|
664
|
+
|
|
665
|
+
source_config = matching_sources[0]
|
|
666
|
+
logger.info(f"Found source config for {source_id}: type={source_config.get('type')}")
|
|
667
|
+
|
|
668
|
+
# Execute the action
|
|
669
|
+
executor = get_action_executor()
|
|
670
|
+
result: ActionResult = executor.execute(
|
|
671
|
+
action_type=action_type,
|
|
672
|
+
source_config=source_config,
|
|
673
|
+
params=params,
|
|
674
|
+
timeout_seconds=timeout,
|
|
675
|
+
)
|
|
676
|
+
|
|
677
|
+
# Convert DataPreviewResult to protobuf if present
|
|
678
|
+
data_proto = None
|
|
679
|
+
if result.data:
|
|
680
|
+
data_proto = qalita_pb2.DataPreviewResponse(
|
|
681
|
+
request_id=request_id,
|
|
682
|
+
ok=result.data.ok,
|
|
683
|
+
data_type=result.data.data_type,
|
|
684
|
+
)
|
|
685
|
+
if result.data.error:
|
|
686
|
+
data_proto.error = result.data.error
|
|
687
|
+
if result.data.headers:
|
|
688
|
+
data_proto.headers.extend(result.data.headers)
|
|
689
|
+
if result.data.rows:
|
|
690
|
+
for row in result.data.rows:
|
|
691
|
+
data_row = qalita_pb2.DataRow(values=row)
|
|
692
|
+
data_proto.rows.append(data_row)
|
|
693
|
+
if result.data.total_rows is not None:
|
|
694
|
+
data_proto.total_rows = result.data.total_rows
|
|
695
|
+
if result.data.content:
|
|
696
|
+
data_proto.content = result.data.content
|
|
697
|
+
|
|
698
|
+
# Send the response
|
|
699
|
+
await self.grpc_client.send_agent_action_response(
|
|
700
|
+
request_id=request_id,
|
|
701
|
+
ok=result.ok,
|
|
702
|
+
action_type=result.action_type,
|
|
703
|
+
error=result.error,
|
|
704
|
+
result_json=result.result_json,
|
|
705
|
+
data=data_proto,
|
|
706
|
+
execution_time_ms=result.execution_time_ms,
|
|
707
|
+
)
|
|
708
|
+
|
|
709
|
+
if result.ok:
|
|
710
|
+
logger.success(f"Agent action '{action_type}' completed for source {source_id} in {result.execution_time_ms}ms")
|
|
711
|
+
else:
|
|
712
|
+
logger.warning(f"Agent action '{action_type}' failed for source {source_id}: {result.error}")
|
|
713
|
+
|
|
714
|
+
except json.JSONDecodeError as e:
|
|
715
|
+
error_msg = f"Invalid parameters JSON: {str(e)}"
|
|
716
|
+
logger.error(f"Error handling agent action request {request_id}: {error_msg}")
|
|
717
|
+
await self.grpc_client.send_agent_action_response(
|
|
718
|
+
request_id=request_id,
|
|
719
|
+
ok=False,
|
|
720
|
+
action_type=action_type,
|
|
721
|
+
error=error_msg,
|
|
722
|
+
)
|
|
723
|
+
except Exception as e:
|
|
724
|
+
error_msg = f"Internal error: {str(e)}"
|
|
725
|
+
logger.error(f"Error handling agent action request {request_id}: {error_msg}")
|
|
726
|
+
await self.grpc_client.send_agent_action_response(
|
|
727
|
+
request_id=request_id,
|
|
728
|
+
ok=False,
|
|
729
|
+
action_type=action_type,
|
|
730
|
+
error=error_msg,
|
|
731
|
+
)
|
|
732
|
+
|
|
623
733
|
async def _execute_job(
|
|
624
734
|
self,
|
|
625
735
|
job_id: int,
|
qalita/grpc/client.py
CHANGED
|
@@ -77,6 +77,7 @@ class GrpcClient:
|
|
|
77
77
|
self._on_routine_received: Optional[Callable] = None
|
|
78
78
|
self._on_data_preview_request: Optional[Callable] = None
|
|
79
79
|
self._on_add_source_request: Optional[Callable] = None
|
|
80
|
+
self._on_agent_action_request: Optional[Callable] = None
|
|
80
81
|
self._on_disconnect: Optional[Callable] = None
|
|
81
82
|
|
|
82
83
|
def _parse_grpc_target(self, url: str) -> str:
|
|
@@ -105,8 +106,8 @@ class GrpcClient:
|
|
|
105
106
|
self._use_secure_channel = False
|
|
106
107
|
return f"{host}:50051"
|
|
107
108
|
|
|
108
|
-
# For production URLs (e.g., https://api.
|
|
109
|
-
# Convert to gRPC endpoint (e.g., grpc.
|
|
109
|
+
# For production URLs (e.g., https://api.app.platform.qalita.io)
|
|
110
|
+
# Convert to gRPC endpoint (e.g., grpc.app.platform.qalita.io:443)
|
|
110
111
|
self._use_secure_channel = True
|
|
111
112
|
|
|
112
113
|
# Replace 'api.' prefix with 'grpc.' if present
|
|
@@ -470,6 +471,10 @@ class GrpcClient:
|
|
|
470
471
|
"""Set callback for when an add source request is received via stream."""
|
|
471
472
|
self._on_add_source_request = callback
|
|
472
473
|
|
|
474
|
+
def on_agent_action_request(self, callback: Callable[[qalita_pb2.AgentActionRequest], Any]) -> None:
|
|
475
|
+
"""Set callback for when an agent action request is received via stream."""
|
|
476
|
+
self._on_agent_action_request = callback
|
|
477
|
+
|
|
473
478
|
def on_disconnect(self, callback: Callable[[], Any]) -> None:
|
|
474
479
|
"""Set callback for when connection is lost."""
|
|
475
480
|
self._on_disconnect = callback
|
|
@@ -609,6 +614,35 @@ class GrpcClient:
|
|
|
609
614
|
msg = qalita_pb2.WorkerMessage(add_source_response=response)
|
|
610
615
|
await self._outgoing_queue.put(msg)
|
|
611
616
|
|
|
617
|
+
async def send_agent_action_response(
|
|
618
|
+
self,
|
|
619
|
+
request_id: str,
|
|
620
|
+
ok: bool,
|
|
621
|
+
action_type: str,
|
|
622
|
+
error: Optional[str] = None,
|
|
623
|
+
result_json: Optional[str] = None,
|
|
624
|
+
data: Optional[qalita_pb2.DataPreviewResponse] = None,
|
|
625
|
+
execution_time_ms: Optional[int] = None,
|
|
626
|
+
) -> None:
|
|
627
|
+
"""Send an agent action response through the stream."""
|
|
628
|
+
response = qalita_pb2.AgentActionResponse(
|
|
629
|
+
request_id=request_id,
|
|
630
|
+
ok=ok,
|
|
631
|
+
action_type=action_type,
|
|
632
|
+
)
|
|
633
|
+
|
|
634
|
+
if error:
|
|
635
|
+
response.error = error
|
|
636
|
+
if result_json:
|
|
637
|
+
response.result_json = result_json
|
|
638
|
+
if data:
|
|
639
|
+
response.data.CopyFrom(data)
|
|
640
|
+
if execution_time_ms is not None:
|
|
641
|
+
response.execution_time_ms = execution_time_ms
|
|
642
|
+
|
|
643
|
+
msg = qalita_pb2.WorkerMessage(agent_action_response=response)
|
|
644
|
+
await self._outgoing_queue.put(msg)
|
|
645
|
+
|
|
612
646
|
async def _outgoing_messages(self) -> AsyncIterator[qalita_pb2.WorkerMessage]:
|
|
613
647
|
"""Generator for outgoing stream messages."""
|
|
614
648
|
logger.info("Outgoing messages generator started")
|
|
@@ -695,6 +729,12 @@ class GrpcClient:
|
|
|
695
729
|
if self._on_add_source_request:
|
|
696
730
|
await self._on_add_source_request(request)
|
|
697
731
|
|
|
732
|
+
elif msg.HasField('agent_action_request'):
|
|
733
|
+
request = msg.agent_action_request
|
|
734
|
+
logger.info(f"Received agent action request: {request.request_id} type={request.action_type}")
|
|
735
|
+
if self._on_agent_action_request:
|
|
736
|
+
await self._on_agent_action_request(request)
|
|
737
|
+
|
|
698
738
|
elif msg.HasField('ack'):
|
|
699
739
|
logger.debug(f"Received ack: {msg.ack.message_type}")
|
|
700
740
|
|
qalita/grpc/protos/qalita.proto
CHANGED
|
@@ -49,6 +49,7 @@ message WorkerMessage {
|
|
|
49
49
|
JobLogLine log_line = 4;
|
|
50
50
|
DataPreviewResponse data_preview_response = 5;
|
|
51
51
|
AddSourceResponse add_source_response = 6;
|
|
52
|
+
AgentActionResponse agent_action_response = 7;
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
|
|
@@ -69,6 +70,7 @@ message ServerMessage {
|
|
|
69
70
|
ServerError error = 4;
|
|
70
71
|
DataPreviewRequest data_preview_request = 5;
|
|
71
72
|
AddSourceRequest add_source_request = 6;
|
|
73
|
+
AgentActionRequest agent_action_request = 7;
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
|
|
@@ -389,3 +391,27 @@ message AddSourceResponse {
|
|
|
389
391
|
optional int32 source_id = 4; // ID assigned by worker in local config
|
|
390
392
|
bool connectivity_verified = 5; // Whether connection to source was verified
|
|
391
393
|
}
|
|
394
|
+
|
|
395
|
+
// =============================================================================
|
|
396
|
+
// Agent Actions (Studio LLM -> Worker)
|
|
397
|
+
// =============================================================================
|
|
398
|
+
|
|
399
|
+
// Request from LLM agent to execute an action on a data source
|
|
400
|
+
message AgentActionRequest {
|
|
401
|
+
string request_id = 1; // Unique ID to correlate request/response
|
|
402
|
+
string action_type = 2; // query, read_data, filter, aggregate, describe, sample
|
|
403
|
+
int32 source_id = 3; // Source to operate on
|
|
404
|
+
string parameters_json = 4; // Action parameters as JSON
|
|
405
|
+
optional int32 timeout_seconds = 5; // Optional timeout for the action
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// Response from worker after executing an agent action
|
|
409
|
+
message AgentActionResponse {
|
|
410
|
+
string request_id = 1; // Correlates with request
|
|
411
|
+
bool ok = 2; // Whether operation succeeded
|
|
412
|
+
string action_type = 3; // Echo back the action type
|
|
413
|
+
optional string error = 4; // Error message if ok=false
|
|
414
|
+
optional string result_json = 5; // Structured result as JSON (for metadata, stats)
|
|
415
|
+
optional DataPreviewResponse data = 6; // Tabular data result if applicable
|
|
416
|
+
optional int64 execution_time_ms = 7; // How long the action took
|
|
417
|
+
}
|
qalita/grpc/protos/qalita_pb2.py
CHANGED
|
@@ -26,7 +26,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
|
|
|
26
26
|
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cqalita.proto\x12\rqalita.worker\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xf1\x02\n\rWorkerMessage\x12.\n\nkeep_alive\x18\x01 \x01(\x0b\x32\x18.qalita.worker.KeepAliveH\x00\x12\x34\n\njob_status\x18\x02 \x01(\x0b\x32\x1e.qalita.worker.JobStatusUpdateH\x00\x12:\n\rworker_status\x18\x03 \x01(\x0b\x32!.qalita.worker.WorkerStatusUpdateH\x00\x12-\n\x08log_line\x18\x04 \x01(\x0b\x32\x19.qalita.worker.JobLogLineH\x00\x12\x43\n\x15\x64\x61ta_preview_response\x18\x05 \x01(\x0b\x32\".qalita.worker.DataPreviewResponseH\x00\x12?\n\x13\x61\x64\x64_source_response\x18\x06 \x01(\x0b\x32 .qalita.worker.AddSourceResponseH\x00\x42\t\n\x07payload\"h\n\nJobLogLine\x12\x0e\n\x06job_id\x18\x01 \x01(\x05\x12\x0c\n\x04line\x18\x02 \x01(\t\x12\r\n\x05level\x18\x03 \x01(\t\x12-\n\ttimestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe8\x02\n\rServerMessage\x12\x36\n\x0ejob_assignment\x18\x01 \x01(\x0b\x32\x1c.qalita.worker.JobAssignmentH\x00\x12<\n\x11routine_triggered\x18\x02 \x01(\x0b\x32\x1f.qalita.worker.RoutineTriggeredH\x00\x12\'\n\x03\x61\x63k\x18\x03 \x01(\x0b\x32\x18.qalita.worker.ServerAckH\x00\x12+\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x1a.qalita.worker.ServerErrorH\x00\x12\x41\n\x14\x64\x61ta_preview_request\x18\x05 \x01(\x0b\x32!.qalita.worker.DataPreviewRequestH\x00\x12=\n\x12\x61\x64\x64_source_request\x18\x06 \x01(\x0b\x32\x1f.qalita.worker.AddSourceRequestH\x00\x42\t\n\x07payload\"M\n\tKeepAlive\x12\x11\n\tworker_id\x18\x01 \x01(\x05\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x85\x02\n\x0fJobStatusUpdate\x12\x0e\n\x06job_id\x18\x01 \x01(\x05\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x1a\n\rerror_message\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x33\n\nstart_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\x31\n\x08\x65nd_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x14\n\x07logs_id\x18\x06 \x01(\x05H\x03\x88\x01\x01\x42\x10\n\x0e_error_messageB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\n\n\x08_logs_id\"7\n\x12WorkerStatusUpdate\x12\x11\n\tworker_id\x18\x01 \x01(\x05\x12\x0e\n\x06status\x18\x02 \x01(\t\"0\n\rJobAssignment\x12\x1f\n\x03job\x18\x01 \x01(\x0b\x32\x12.qalita.worker.Job\";\n\x10RoutineTriggered\x12\'\n\x07routine\x18\x01 \x01(\x0b\x32\x16.qalita.worker.Routine\"T\n\tServerAck\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x14\n\x07message\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_message\",\n\x0bServerError\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\"\x1c\n\x0b\x41uthRequest\x12\r\n\x05token\x18\x01 \x01(\t\"f\n\x0c\x41uthResponse\x12\x15\n\rauthenticated\x18\x01 \x01(\x08\x12!\n\x04user\x18\x02 \x01(\x0b\x32\x13.qalita.worker.User\x12\x12\n\x05\x65rror\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"R\n\x04User\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x12\n\npartner_id\x18\x04 \x01(\x05\x12\r\n\x05roles\x18\x05 \x03(\t\"V\n\x15RegisterWorkerRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04mode\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x11\n\tis_active\x18\x04 \x01(\x08\"%\n\x10GetWorkerRequest\x12\x11\n\tworker_id\x18\x01 \x01(\x05\"\xd5\x01\n\x06Worker\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04mode\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x11\n\tis_active\x18\x05 \x01(\x08\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x04jobs\x18\x08 \x03(\x0b\x32\x12.qalita.worker.Job\"!\n\x0eGetPackRequest\x12\x0f\n\x07pack_id\x18\x01 \x01(\x05\"\x85\x01\n\x04Pack\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\x12\x12\n\nvisibility\x18\x05 \x01(\t\x12,\n\x08versions\x18\x06 \x03(\x0b\x32\x1a.qalita.worker.PackVersion\"?\n\x0bPackVersion\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x12\n\nsem_ver_id\x18\x02 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x03 \x01(\x05\"%\n\x10GetSourceRequest\x12\x11\n\tsource_id\x18\x01 \x01(\x05\"\x9c\x01\n\x06Source\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\x12\x12\n\nvisibility\x18\x05 \x01(\t\x12\x11\n\tsensitive\x18\x06 \x01(\x08\x12.\n\x08versions\x18\x07 \x03(\x0b\x32\x1c.qalita.worker.SourceVersion\"/\n\rSourceVersion\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x12\n\nsem_ver_id\x18\x02 \x01(\t\"&\n\x12GetAssetUrlRequest\x12\x10\n\x08\x61sset_id\x18\x01 \x01(\x05\"R\n\x08\x41ssetUrl\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\"1\n\x08Registry\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\"A\n\x12RegistriesResponse\x12+\n\nregistries\x18\x01 \x03(\x0b\x32\x17.qalita.worker.Registry\"\x96\x03\n\x10\x43reateJobRequest\x12\x11\n\tsource_id\x18\x01 \x01(\x05\x12\x1e\n\x11source_version_id\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\ttarget_id\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x1e\n\x11target_version_id\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x0f\n\x07pack_id\x18\x05 \x01(\x05\x12\x1c\n\x0fpack_version_id\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x17\n\nroutine_id\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12!\n\x14pack_config_override\x18\x08 \x01(\tH\x05\x88\x01\x01\x12\x11\n\x04type\x18\t \x01(\tH\x06\x88\x01\x01\x12\x11\n\x04name\x18\n \x01(\tH\x07\x88\x01\x01\x42\x14\n\x12_source_version_idB\x0c\n\n_target_idB\x14\n\x12_target_version_idB\x12\n\x10_pack_version_idB\r\n\x0b_routine_idB\x17\n\x15_pack_config_overrideB\x07\n\x05_typeB\x07\n\x05_name\"\xa8\x02\n\x10UpdateJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\x05\x12\x15\n\x08\x61gent_id\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06status\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x33\n\nstart_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x31\n\x08\x65nd_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x12\x14\n\x07logs_id\x18\x07 \x01(\x05H\x05\x88\x01\x01\x42\x0b\n\t_agent_idB\t\n\x07_statusB\x07\n\x05_nameB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\n\n\x08_logs_id\"4\n\x0f\x43laimJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\x05\x12\x11\n\tworker_id\x18\x02 \x01(\x05\"\xd6\x07\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x11\n\tsource_id\x18\x04 \x01(\x05\x12\x1e\n\x11source_version_id\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\ttarget_id\x18\x06 \x01(\x05H\x01\x88\x01\x01\x12\x1e\n\x11target_version_id\x18\x07 \x01(\x05H\x02\x88\x01\x01\x12\x0f\n\x07pack_id\x18\x08 \x01(\x05\x12\x1c\n\x0fpack_version_id\x18\t \x01(\x05H\x03\x88\x01\x01\x12\x15\n\x08\x61gent_id\x18\n \x01(\x05H\x04\x88\x01\x01\x12\x17\n\nroutine_id\x18\x0b \x01(\x05H\x05\x88\x01\x01\x12!\n\x14pack_config_override\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x33\n\nstart_date\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x07\x88\x01\x01\x12\x31\n\x08\x65nd_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x08\x88\x01\x01\x12.\n\ncreated_at\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06source\x18\x10 \x01(\x0b\x32\x15.qalita.worker.SourceH\t\x88\x01\x01\x12*\n\x06target\x18\x11 \x01(\x0b\x32\x15.qalita.worker.SourceH\n\x88\x01\x01\x12&\n\x04pack\x18\x12 \x01(\x0b\x32\x13.qalita.worker.PackH\x0b\x88\x01\x01\x12\x39\n\x0esource_version\x18\x13 \x01(\x0b\x32\x1c.qalita.worker.SourceVersionH\x0c\x88\x01\x01\x12\x39\n\x0etarget_version\x18\x14 \x01(\x0b\x32\x1c.qalita.worker.SourceVersionH\r\x88\x01\x01\x12\x35\n\x0cpack_version\x18\x15 \x01(\x0b\x32\x1a.qalita.worker.PackVersionH\x0e\x88\x01\x01\x42\x14\n\x12_source_version_idB\x0c\n\n_target_idB\x14\n\x12_target_version_idB\x12\n\x10_pack_version_idB\x0b\n\t_agent_idB\r\n\x0b_routine_idB\x17\n\x15_pack_config_overrideB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\t\n\x07_sourceB\t\n\x07_targetB\x07\n\x05_packB\x11\n\x0f_source_versionB\x11\n\x0f_target_versionB\x0f\n\r_pack_version\"\x8c\x04\n\x07Routine\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x10\n\x08schedule\x18\x04 \x01(\t\x12\x0e\n\x06\x63onfig\x18\x05 \x01(\t\x12.\n\nstart_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tsource_id\x18\x07 \x01(\x05\x12\x1e\n\x11source_version_id\x18\x08 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\ttarget_id\x18\t \x01(\x05H\x01\x88\x01\x01\x12\x1e\n\x11target_version_id\x18\n \x01(\x05H\x02\x88\x01\x01\x12\x0f\n\x07pack_id\x18\x0b \x01(\x05\x12\x1c\n\x0fpack_version_id\x18\x0c \x01(\x05H\x03\x88\x01\x01\x12*\n\x06source\x18\r \x01(\x0b\x32\x15.qalita.worker.SourceH\x04\x88\x01\x01\x12*\n\x06target\x18\x0e \x01(\x0b\x32\x15.qalita.worker.SourceH\x05\x88\x01\x01\x12&\n\x04pack\x18\x0f \x01(\x0b\x32\x13.qalita.worker.PackH\x06\x88\x01\x01\x42\x14\n\x12_source_version_idB\x0c\n\n_target_idB\x14\n\x12_target_version_idB\x12\n\x10_pack_version_idB\t\n\x07_sourceB\t\n\x07_targetB\x07\n\x05_pack\"<\n\x10RoutinesResponse\x12(\n\x08routines\x18\x01 \x03(\x0b\x32\x16.qalita.worker.Routine\"\xad\x01\n\x12\x44\x61taPreviewRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x11\n\tsource_id\x18\x02 \x01(\x05\x12\x1e\n\x11source_version_id\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05query\x18\x05 \x01(\tH\x02\x88\x01\x01\x42\x14\n\x12_source_version_idB\x08\n\x06_limitB\x08\n\x06_query\"\xbb\x02\n\x13\x44\x61taPreviewResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\n\n\x02ok\x18\x02 \x01(\x08\x12\x11\n\tdata_type\x18\x03 \x01(\t\x12\x12\n\x05\x65rror\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07headers\x18\x05 \x03(\t\x12$\n\x04rows\x18\x06 \x03(\x0b\x32\x16.qalita.worker.DataRow\x12\x17\n\ntotal_rows\x18\x07 \x01(\x03H\x01\x88\x01\x01\x12\x14\n\x07\x63ontent\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rbinary_base64\x18\t \x01(\tH\x03\x88\x01\x01\x12\x16\n\tmime_type\x18\n \x01(\tH\x04\x88\x01\x01\x42\x08\n\x06_errorB\r\n\x0b_total_rowsB\n\n\x08_contentB\x10\n\x0e_binary_base64B\x0c\n\n_mime_type\"\x19\n\x07\x44\x61taRow\x12\x0e\n\x06values\x18\x01 \x03(\t\"\xa6\x01\n\x10\x41\x64\x64SourceRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x12\n\nvisibility\x18\x05 \x01(\t\x12\x11\n\treference\x18\x06 \x01(\x08\x12\x11\n\tsensitive\x18\x07 \x01(\x08\x12\x13\n\x0b\x63onfig_json\x18\x08 \x01(\t\"\x96\x01\n\x11\x41\x64\x64SourceResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\n\n\x02ok\x18\x02 \x01(\x08\x12\x12\n\x05\x65rror\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tsource_id\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x1d\n\x15\x63onnectivity_verified\x18\x05 \x01(\x08\x42\x08\n\x06_errorB\x0c\n\n_source_id2\xde\x06\n\rWorkerService\x12I\n\x07\x43onnect\x12\x1c.qalita.worker.WorkerMessage\x1a\x1c.qalita.worker.ServerMessage(\x01\x30\x01\x12G\n\x0c\x41uthenticate\x12\x1a.qalita.worker.AuthRequest\x1a\x1b.qalita.worker.AuthResponse\x12M\n\x0eRegisterWorker\x12$.qalita.worker.RegisterWorkerRequest\x1a\x15.qalita.worker.Worker\x12\x43\n\tGetWorker\x12\x1f.qalita.worker.GetWorkerRequest\x1a\x15.qalita.worker.Worker\x12=\n\x07GetPack\x12\x1d.qalita.worker.GetPackRequest\x1a\x13.qalita.worker.Pack\x12\x43\n\tGetSource\x12\x1f.qalita.worker.GetSourceRequest\x1a\x15.qalita.worker.Source\x12I\n\x0bGetAssetUrl\x12!.qalita.worker.GetAssetUrlRequest\x1a\x17.qalita.worker.AssetUrl\x12J\n\rGetRegistries\x12\x16.google.protobuf.Empty\x1a!.qalita.worker.RegistriesResponse\x12@\n\tCreateJob\x12\x1f.qalita.worker.CreateJobRequest\x1a\x12.qalita.worker.Job\x12@\n\tUpdateJob\x12\x1f.qalita.worker.UpdateJobRequest\x1a\x12.qalita.worker.Job\x12>\n\x08\x43laimJob\x12\x1e.qalita.worker.ClaimJobRequest\x1a\x12.qalita.worker.Job\x12\x46\n\x0bGetRoutines\x12\x16.google.protobuf.Empty\x1a\x1f.qalita.worker.RoutinesResponseb\x06proto3')
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cqalita.proto\x12\rqalita.worker\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xb6\x03\n\rWorkerMessage\x12.\n\nkeep_alive\x18\x01 \x01(\x0b\x32\x18.qalita.worker.KeepAliveH\x00\x12\x34\n\njob_status\x18\x02 \x01(\x0b\x32\x1e.qalita.worker.JobStatusUpdateH\x00\x12:\n\rworker_status\x18\x03 \x01(\x0b\x32!.qalita.worker.WorkerStatusUpdateH\x00\x12-\n\x08log_line\x18\x04 \x01(\x0b\x32\x19.qalita.worker.JobLogLineH\x00\x12\x43\n\x15\x64\x61ta_preview_response\x18\x05 \x01(\x0b\x32\".qalita.worker.DataPreviewResponseH\x00\x12?\n\x13\x61\x64\x64_source_response\x18\x06 \x01(\x0b\x32 .qalita.worker.AddSourceResponseH\x00\x12\x43\n\x15\x61gent_action_response\x18\x07 \x01(\x0b\x32\".qalita.worker.AgentActionResponseH\x00\x42\t\n\x07payload\"h\n\nJobLogLine\x12\x0e\n\x06job_id\x18\x01 \x01(\x05\x12\x0c\n\x04line\x18\x02 \x01(\t\x12\r\n\x05level\x18\x03 \x01(\t\x12-\n\ttimestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xab\x03\n\rServerMessage\x12\x36\n\x0ejob_assignment\x18\x01 \x01(\x0b\x32\x1c.qalita.worker.JobAssignmentH\x00\x12<\n\x11routine_triggered\x18\x02 \x01(\x0b\x32\x1f.qalita.worker.RoutineTriggeredH\x00\x12\'\n\x03\x61\x63k\x18\x03 \x01(\x0b\x32\x18.qalita.worker.ServerAckH\x00\x12+\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x1a.qalita.worker.ServerErrorH\x00\x12\x41\n\x14\x64\x61ta_preview_request\x18\x05 \x01(\x0b\x32!.qalita.worker.DataPreviewRequestH\x00\x12=\n\x12\x61\x64\x64_source_request\x18\x06 \x01(\x0b\x32\x1f.qalita.worker.AddSourceRequestH\x00\x12\x41\n\x14\x61gent_action_request\x18\x07 \x01(\x0b\x32!.qalita.worker.AgentActionRequestH\x00\x42\t\n\x07payload\"M\n\tKeepAlive\x12\x11\n\tworker_id\x18\x01 \x01(\x05\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x85\x02\n\x0fJobStatusUpdate\x12\x0e\n\x06job_id\x18\x01 \x01(\x05\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x1a\n\rerror_message\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x33\n\nstart_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\x31\n\x08\x65nd_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x14\n\x07logs_id\x18\x06 \x01(\x05H\x03\x88\x01\x01\x42\x10\n\x0e_error_messageB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\n\n\x08_logs_id\"7\n\x12WorkerStatusUpdate\x12\x11\n\tworker_id\x18\x01 \x01(\x05\x12\x0e\n\x06status\x18\x02 \x01(\t\"0\n\rJobAssignment\x12\x1f\n\x03job\x18\x01 \x01(\x0b\x32\x12.qalita.worker.Job\";\n\x10RoutineTriggered\x12\'\n\x07routine\x18\x01 \x01(\x0b\x32\x16.qalita.worker.Routine\"T\n\tServerAck\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x14\n\x07message\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_message\",\n\x0bServerError\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\"\x1c\n\x0b\x41uthRequest\x12\r\n\x05token\x18\x01 \x01(\t\"f\n\x0c\x41uthResponse\x12\x15\n\rauthenticated\x18\x01 \x01(\x08\x12!\n\x04user\x18\x02 \x01(\x0b\x32\x13.qalita.worker.User\x12\x12\n\x05\x65rror\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"R\n\x04User\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x12\n\npartner_id\x18\x04 \x01(\x05\x12\r\n\x05roles\x18\x05 \x03(\t\"V\n\x15RegisterWorkerRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04mode\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x11\n\tis_active\x18\x04 \x01(\x08\"%\n\x10GetWorkerRequest\x12\x11\n\tworker_id\x18\x01 \x01(\x05\"\xd5\x01\n\x06Worker\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04mode\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x11\n\tis_active\x18\x05 \x01(\x08\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x04jobs\x18\x08 \x03(\x0b\x32\x12.qalita.worker.Job\"!\n\x0eGetPackRequest\x12\x0f\n\x07pack_id\x18\x01 \x01(\x05\"\x85\x01\n\x04Pack\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\x12\x12\n\nvisibility\x18\x05 \x01(\t\x12,\n\x08versions\x18\x06 \x03(\x0b\x32\x1a.qalita.worker.PackVersion\"?\n\x0bPackVersion\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x12\n\nsem_ver_id\x18\x02 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x03 \x01(\x05\"%\n\x10GetSourceRequest\x12\x11\n\tsource_id\x18\x01 \x01(\x05\"\x9c\x01\n\x06Source\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\x12\x12\n\nvisibility\x18\x05 \x01(\t\x12\x11\n\tsensitive\x18\x06 \x01(\x08\x12.\n\x08versions\x18\x07 \x03(\x0b\x32\x1c.qalita.worker.SourceVersion\"/\n\rSourceVersion\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x12\n\nsem_ver_id\x18\x02 \x01(\t\"&\n\x12GetAssetUrlRequest\x12\x10\n\x08\x61sset_id\x18\x01 \x01(\x05\"R\n\x08\x41ssetUrl\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\"1\n\x08Registry\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\"A\n\x12RegistriesResponse\x12+\n\nregistries\x18\x01 \x03(\x0b\x32\x17.qalita.worker.Registry\"\x96\x03\n\x10\x43reateJobRequest\x12\x11\n\tsource_id\x18\x01 \x01(\x05\x12\x1e\n\x11source_version_id\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\ttarget_id\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x1e\n\x11target_version_id\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x0f\n\x07pack_id\x18\x05 \x01(\x05\x12\x1c\n\x0fpack_version_id\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x17\n\nroutine_id\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12!\n\x14pack_config_override\x18\x08 \x01(\tH\x05\x88\x01\x01\x12\x11\n\x04type\x18\t \x01(\tH\x06\x88\x01\x01\x12\x11\n\x04name\x18\n \x01(\tH\x07\x88\x01\x01\x42\x14\n\x12_source_version_idB\x0c\n\n_target_idB\x14\n\x12_target_version_idB\x12\n\x10_pack_version_idB\r\n\x0b_routine_idB\x17\n\x15_pack_config_overrideB\x07\n\x05_typeB\x07\n\x05_name\"\xa8\x02\n\x10UpdateJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\x05\x12\x15\n\x08\x61gent_id\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06status\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x33\n\nstart_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x31\n\x08\x65nd_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x12\x14\n\x07logs_id\x18\x07 \x01(\x05H\x05\x88\x01\x01\x42\x0b\n\t_agent_idB\t\n\x07_statusB\x07\n\x05_nameB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\n\n\x08_logs_id\"4\n\x0f\x43laimJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\x05\x12\x11\n\tworker_id\x18\x02 \x01(\x05\"\xd6\x07\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x11\n\tsource_id\x18\x04 \x01(\x05\x12\x1e\n\x11source_version_id\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\ttarget_id\x18\x06 \x01(\x05H\x01\x88\x01\x01\x12\x1e\n\x11target_version_id\x18\x07 \x01(\x05H\x02\x88\x01\x01\x12\x0f\n\x07pack_id\x18\x08 \x01(\x05\x12\x1c\n\x0fpack_version_id\x18\t \x01(\x05H\x03\x88\x01\x01\x12\x15\n\x08\x61gent_id\x18\n \x01(\x05H\x04\x88\x01\x01\x12\x17\n\nroutine_id\x18\x0b \x01(\x05H\x05\x88\x01\x01\x12!\n\x14pack_config_override\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x33\n\nstart_date\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x07\x88\x01\x01\x12\x31\n\x08\x65nd_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x08\x88\x01\x01\x12.\n\ncreated_at\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06source\x18\x10 \x01(\x0b\x32\x15.qalita.worker.SourceH\t\x88\x01\x01\x12*\n\x06target\x18\x11 \x01(\x0b\x32\x15.qalita.worker.SourceH\n\x88\x01\x01\x12&\n\x04pack\x18\x12 \x01(\x0b\x32\x13.qalita.worker.PackH\x0b\x88\x01\x01\x12\x39\n\x0esource_version\x18\x13 \x01(\x0b\x32\x1c.qalita.worker.SourceVersionH\x0c\x88\x01\x01\x12\x39\n\x0etarget_version\x18\x14 \x01(\x0b\x32\x1c.qalita.worker.SourceVersionH\r\x88\x01\x01\x12\x35\n\x0cpack_version\x18\x15 \x01(\x0b\x32\x1a.qalita.worker.PackVersionH\x0e\x88\x01\x01\x42\x14\n\x12_source_version_idB\x0c\n\n_target_idB\x14\n\x12_target_version_idB\x12\n\x10_pack_version_idB\x0b\n\t_agent_idB\r\n\x0b_routine_idB\x17\n\x15_pack_config_overrideB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\t\n\x07_sourceB\t\n\x07_targetB\x07\n\x05_packB\x11\n\x0f_source_versionB\x11\n\x0f_target_versionB\x0f\n\r_pack_version\"\x8c\x04\n\x07Routine\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x10\n\x08schedule\x18\x04 \x01(\t\x12\x0e\n\x06\x63onfig\x18\x05 \x01(\t\x12.\n\nstart_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tsource_id\x18\x07 \x01(\x05\x12\x1e\n\x11source_version_id\x18\x08 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\ttarget_id\x18\t \x01(\x05H\x01\x88\x01\x01\x12\x1e\n\x11target_version_id\x18\n \x01(\x05H\x02\x88\x01\x01\x12\x0f\n\x07pack_id\x18\x0b \x01(\x05\x12\x1c\n\x0fpack_version_id\x18\x0c \x01(\x05H\x03\x88\x01\x01\x12*\n\x06source\x18\r \x01(\x0b\x32\x15.qalita.worker.SourceH\x04\x88\x01\x01\x12*\n\x06target\x18\x0e \x01(\x0b\x32\x15.qalita.worker.SourceH\x05\x88\x01\x01\x12&\n\x04pack\x18\x0f \x01(\x0b\x32\x13.qalita.worker.PackH\x06\x88\x01\x01\x42\x14\n\x12_source_version_idB\x0c\n\n_target_idB\x14\n\x12_target_version_idB\x12\n\x10_pack_version_idB\t\n\x07_sourceB\t\n\x07_targetB\x07\n\x05_pack\"<\n\x10RoutinesResponse\x12(\n\x08routines\x18\x01 \x03(\x0b\x32\x16.qalita.worker.Routine\"\xad\x01\n\x12\x44\x61taPreviewRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x11\n\tsource_id\x18\x02 \x01(\x05\x12\x1e\n\x11source_version_id\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05query\x18\x05 \x01(\tH\x02\x88\x01\x01\x42\x14\n\x12_source_version_idB\x08\n\x06_limitB\x08\n\x06_query\"\xbb\x02\n\x13\x44\x61taPreviewResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\n\n\x02ok\x18\x02 \x01(\x08\x12\x11\n\tdata_type\x18\x03 \x01(\t\x12\x12\n\x05\x65rror\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07headers\x18\x05 \x03(\t\x12$\n\x04rows\x18\x06 \x03(\x0b\x32\x16.qalita.worker.DataRow\x12\x17\n\ntotal_rows\x18\x07 \x01(\x03H\x01\x88\x01\x01\x12\x14\n\x07\x63ontent\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rbinary_base64\x18\t \x01(\tH\x03\x88\x01\x01\x12\x16\n\tmime_type\x18\n \x01(\tH\x04\x88\x01\x01\x42\x08\n\x06_errorB\r\n\x0b_total_rowsB\n\n\x08_contentB\x10\n\x0e_binary_base64B\x0c\n\n_mime_type\"\x19\n\x07\x44\x61taRow\x12\x0e\n\x06values\x18\x01 \x03(\t\"\xa6\x01\n\x10\x41\x64\x64SourceRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x12\n\nvisibility\x18\x05 \x01(\t\x12\x11\n\treference\x18\x06 \x01(\x08\x12\x11\n\tsensitive\x18\x07 \x01(\x08\x12\x13\n\x0b\x63onfig_json\x18\x08 \x01(\t\"\x96\x01\n\x11\x41\x64\x64SourceResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\n\n\x02ok\x18\x02 \x01(\x08\x12\x12\n\x05\x65rror\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tsource_id\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x1d\n\x15\x63onnectivity_verified\x18\x05 \x01(\x08\x42\x08\n\x06_errorB\x0c\n\n_source_id\"\x9b\x01\n\x12\x41gentActionRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tion_type\x18\x02 \x01(\t\x12\x11\n\tsource_id\x18\x03 \x01(\x05\x12\x17\n\x0fparameters_json\x18\x04 \x01(\t\x12\x1c\n\x0ftimeout_seconds\x18\x05 \x01(\x05H\x00\x88\x01\x01\x42\x12\n\x10_timeout_seconds\"\x88\x02\n\x13\x41gentActionResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\n\n\x02ok\x18\x02 \x01(\x08\x12\x13\n\x0b\x61\x63tion_type\x18\x03 \x01(\t\x12\x12\n\x05\x65rror\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bresult_json\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x35\n\x04\x64\x61ta\x18\x06 \x01(\x0b\x32\".qalita.worker.DataPreviewResponseH\x02\x88\x01\x01\x12\x1e\n\x11\x65xecution_time_ms\x18\x07 \x01(\x03H\x03\x88\x01\x01\x42\x08\n\x06_errorB\x0e\n\x0c_result_jsonB\x07\n\x05_dataB\x14\n\x12_execution_time_ms2\xde\x06\n\rWorkerService\x12I\n\x07\x43onnect\x12\x1c.qalita.worker.WorkerMessage\x1a\x1c.qalita.worker.ServerMessage(\x01\x30\x01\x12G\n\x0c\x41uthenticate\x12\x1a.qalita.worker.AuthRequest\x1a\x1b.qalita.worker.AuthResponse\x12M\n\x0eRegisterWorker\x12$.qalita.worker.RegisterWorkerRequest\x1a\x15.qalita.worker.Worker\x12\x43\n\tGetWorker\x12\x1f.qalita.worker.GetWorkerRequest\x1a\x15.qalita.worker.Worker\x12=\n\x07GetPack\x12\x1d.qalita.worker.GetPackRequest\x1a\x13.qalita.worker.Pack\x12\x43\n\tGetSource\x12\x1f.qalita.worker.GetSourceRequest\x1a\x15.qalita.worker.Source\x12I\n\x0bGetAssetUrl\x12!.qalita.worker.GetAssetUrlRequest\x1a\x17.qalita.worker.AssetUrl\x12J\n\rGetRegistries\x12\x16.google.protobuf.Empty\x1a!.qalita.worker.RegistriesResponse\x12@\n\tCreateJob\x12\x1f.qalita.worker.CreateJobRequest\x1a\x12.qalita.worker.Job\x12@\n\tUpdateJob\x12\x1f.qalita.worker.UpdateJobRequest\x1a\x12.qalita.worker.Job\x12>\n\x08\x43laimJob\x12\x1e.qalita.worker.ClaimJobRequest\x1a\x12.qalita.worker.Job\x12\x46\n\x0bGetRoutines\x12\x16.google.protobuf.Empty\x1a\x1f.qalita.worker.RoutinesResponseb\x06proto3')
|
|
30
30
|
|
|
31
31
|
_globals = globals()
|
|
32
32
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -34,79 +34,83 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'qalita_pb2', _globals)
|
|
|
34
34
|
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
35
|
DESCRIPTOR._loaded_options = None
|
|
36
36
|
_globals['_WORKERMESSAGE']._serialized_start=94
|
|
37
|
-
_globals['_WORKERMESSAGE']._serialized_end=
|
|
38
|
-
_globals['_JOBLOGLINE']._serialized_start=
|
|
39
|
-
_globals['_JOBLOGLINE']._serialized_end=
|
|
40
|
-
_globals['_SERVERMESSAGE']._serialized_start=
|
|
41
|
-
_globals['_SERVERMESSAGE']._serialized_end=
|
|
42
|
-
_globals['_KEEPALIVE']._serialized_start=
|
|
43
|
-
_globals['_KEEPALIVE']._serialized_end=
|
|
44
|
-
_globals['_JOBSTATUSUPDATE']._serialized_start=
|
|
45
|
-
_globals['_JOBSTATUSUPDATE']._serialized_end=
|
|
46
|
-
_globals['_WORKERSTATUSUPDATE']._serialized_start=
|
|
47
|
-
_globals['_WORKERSTATUSUPDATE']._serialized_end=
|
|
48
|
-
_globals['_JOBASSIGNMENT']._serialized_start=
|
|
49
|
-
_globals['_JOBASSIGNMENT']._serialized_end=
|
|
50
|
-
_globals['_ROUTINETRIGGERED']._serialized_start=
|
|
51
|
-
_globals['_ROUTINETRIGGERED']._serialized_end=
|
|
52
|
-
_globals['_SERVERACK']._serialized_start=
|
|
53
|
-
_globals['_SERVERACK']._serialized_end=
|
|
54
|
-
_globals['_SERVERERROR']._serialized_start=
|
|
55
|
-
_globals['_SERVERERROR']._serialized_end=
|
|
56
|
-
_globals['_AUTHREQUEST']._serialized_start=
|
|
57
|
-
_globals['_AUTHREQUEST']._serialized_end=
|
|
58
|
-
_globals['_AUTHRESPONSE']._serialized_start=
|
|
59
|
-
_globals['_AUTHRESPONSE']._serialized_end=
|
|
60
|
-
_globals['_USER']._serialized_start=
|
|
61
|
-
_globals['_USER']._serialized_end=
|
|
62
|
-
_globals['_REGISTERWORKERREQUEST']._serialized_start=
|
|
63
|
-
_globals['_REGISTERWORKERREQUEST']._serialized_end=
|
|
64
|
-
_globals['_GETWORKERREQUEST']._serialized_start=
|
|
65
|
-
_globals['_GETWORKERREQUEST']._serialized_end=
|
|
66
|
-
_globals['_WORKER']._serialized_start=
|
|
67
|
-
_globals['_WORKER']._serialized_end=
|
|
68
|
-
_globals['_GETPACKREQUEST']._serialized_start=
|
|
69
|
-
_globals['_GETPACKREQUEST']._serialized_end=
|
|
70
|
-
_globals['_PACK']._serialized_start=
|
|
71
|
-
_globals['_PACK']._serialized_end=
|
|
72
|
-
_globals['_PACKVERSION']._serialized_start=
|
|
73
|
-
_globals['_PACKVERSION']._serialized_end=
|
|
74
|
-
_globals['_GETSOURCEREQUEST']._serialized_start=
|
|
75
|
-
_globals['_GETSOURCEREQUEST']._serialized_end=
|
|
76
|
-
_globals['_SOURCE']._serialized_start=
|
|
77
|
-
_globals['_SOURCE']._serialized_end=
|
|
78
|
-
_globals['_SOURCEVERSION']._serialized_start=
|
|
79
|
-
_globals['_SOURCEVERSION']._serialized_end=
|
|
80
|
-
_globals['_GETASSETURLREQUEST']._serialized_start=
|
|
81
|
-
_globals['_GETASSETURLREQUEST']._serialized_end=
|
|
82
|
-
_globals['_ASSETURL']._serialized_start=
|
|
83
|
-
_globals['_ASSETURL']._serialized_end=
|
|
84
|
-
_globals['_REGISTRY']._serialized_start=
|
|
85
|
-
_globals['_REGISTRY']._serialized_end=
|
|
86
|
-
_globals['_REGISTRIESRESPONSE']._serialized_start=
|
|
87
|
-
_globals['_REGISTRIESRESPONSE']._serialized_end=
|
|
88
|
-
_globals['_CREATEJOBREQUEST']._serialized_start=
|
|
89
|
-
_globals['_CREATEJOBREQUEST']._serialized_end=
|
|
90
|
-
_globals['_UPDATEJOBREQUEST']._serialized_start=
|
|
91
|
-
_globals['_UPDATEJOBREQUEST']._serialized_end=
|
|
92
|
-
_globals['_CLAIMJOBREQUEST']._serialized_start=
|
|
93
|
-
_globals['_CLAIMJOBREQUEST']._serialized_end=
|
|
94
|
-
_globals['_JOB']._serialized_start=
|
|
95
|
-
_globals['_JOB']._serialized_end=
|
|
96
|
-
_globals['_ROUTINE']._serialized_start=
|
|
97
|
-
_globals['_ROUTINE']._serialized_end=
|
|
98
|
-
_globals['_ROUTINESRESPONSE']._serialized_start=
|
|
99
|
-
_globals['_ROUTINESRESPONSE']._serialized_end=
|
|
100
|
-
_globals['_DATAPREVIEWREQUEST']._serialized_start=
|
|
101
|
-
_globals['_DATAPREVIEWREQUEST']._serialized_end=
|
|
102
|
-
_globals['_DATAPREVIEWRESPONSE']._serialized_start=
|
|
103
|
-
_globals['_DATAPREVIEWRESPONSE']._serialized_end=
|
|
104
|
-
_globals['_DATAROW']._serialized_start=
|
|
105
|
-
_globals['_DATAROW']._serialized_end=
|
|
106
|
-
_globals['_ADDSOURCEREQUEST']._serialized_start=
|
|
107
|
-
_globals['_ADDSOURCEREQUEST']._serialized_end=
|
|
108
|
-
_globals['_ADDSOURCERESPONSE']._serialized_start=
|
|
109
|
-
_globals['_ADDSOURCERESPONSE']._serialized_end=
|
|
110
|
-
_globals['
|
|
111
|
-
_globals['
|
|
37
|
+
_globals['_WORKERMESSAGE']._serialized_end=532
|
|
38
|
+
_globals['_JOBLOGLINE']._serialized_start=534
|
|
39
|
+
_globals['_JOBLOGLINE']._serialized_end=638
|
|
40
|
+
_globals['_SERVERMESSAGE']._serialized_start=641
|
|
41
|
+
_globals['_SERVERMESSAGE']._serialized_end=1068
|
|
42
|
+
_globals['_KEEPALIVE']._serialized_start=1070
|
|
43
|
+
_globals['_KEEPALIVE']._serialized_end=1147
|
|
44
|
+
_globals['_JOBSTATUSUPDATE']._serialized_start=1150
|
|
45
|
+
_globals['_JOBSTATUSUPDATE']._serialized_end=1411
|
|
46
|
+
_globals['_WORKERSTATUSUPDATE']._serialized_start=1413
|
|
47
|
+
_globals['_WORKERSTATUSUPDATE']._serialized_end=1468
|
|
48
|
+
_globals['_JOBASSIGNMENT']._serialized_start=1470
|
|
49
|
+
_globals['_JOBASSIGNMENT']._serialized_end=1518
|
|
50
|
+
_globals['_ROUTINETRIGGERED']._serialized_start=1520
|
|
51
|
+
_globals['_ROUTINETRIGGERED']._serialized_end=1579
|
|
52
|
+
_globals['_SERVERACK']._serialized_start=1581
|
|
53
|
+
_globals['_SERVERACK']._serialized_end=1665
|
|
54
|
+
_globals['_SERVERERROR']._serialized_start=1667
|
|
55
|
+
_globals['_SERVERERROR']._serialized_end=1711
|
|
56
|
+
_globals['_AUTHREQUEST']._serialized_start=1713
|
|
57
|
+
_globals['_AUTHREQUEST']._serialized_end=1741
|
|
58
|
+
_globals['_AUTHRESPONSE']._serialized_start=1743
|
|
59
|
+
_globals['_AUTHRESPONSE']._serialized_end=1845
|
|
60
|
+
_globals['_USER']._serialized_start=1847
|
|
61
|
+
_globals['_USER']._serialized_end=1929
|
|
62
|
+
_globals['_REGISTERWORKERREQUEST']._serialized_start=1931
|
|
63
|
+
_globals['_REGISTERWORKERREQUEST']._serialized_end=2017
|
|
64
|
+
_globals['_GETWORKERREQUEST']._serialized_start=2019
|
|
65
|
+
_globals['_GETWORKERREQUEST']._serialized_end=2056
|
|
66
|
+
_globals['_WORKER']._serialized_start=2059
|
|
67
|
+
_globals['_WORKER']._serialized_end=2272
|
|
68
|
+
_globals['_GETPACKREQUEST']._serialized_start=2274
|
|
69
|
+
_globals['_GETPACKREQUEST']._serialized_end=2307
|
|
70
|
+
_globals['_PACK']._serialized_start=2310
|
|
71
|
+
_globals['_PACK']._serialized_end=2443
|
|
72
|
+
_globals['_PACKVERSION']._serialized_start=2445
|
|
73
|
+
_globals['_PACKVERSION']._serialized_end=2508
|
|
74
|
+
_globals['_GETSOURCEREQUEST']._serialized_start=2510
|
|
75
|
+
_globals['_GETSOURCEREQUEST']._serialized_end=2547
|
|
76
|
+
_globals['_SOURCE']._serialized_start=2550
|
|
77
|
+
_globals['_SOURCE']._serialized_end=2706
|
|
78
|
+
_globals['_SOURCEVERSION']._serialized_start=2708
|
|
79
|
+
_globals['_SOURCEVERSION']._serialized_end=2755
|
|
80
|
+
_globals['_GETASSETURLREQUEST']._serialized_start=2757
|
|
81
|
+
_globals['_GETASSETURLREQUEST']._serialized_end=2795
|
|
82
|
+
_globals['_ASSETURL']._serialized_start=2797
|
|
83
|
+
_globals['_ASSETURL']._serialized_end=2879
|
|
84
|
+
_globals['_REGISTRY']._serialized_start=2881
|
|
85
|
+
_globals['_REGISTRY']._serialized_end=2930
|
|
86
|
+
_globals['_REGISTRIESRESPONSE']._serialized_start=2932
|
|
87
|
+
_globals['_REGISTRIESRESPONSE']._serialized_end=2997
|
|
88
|
+
_globals['_CREATEJOBREQUEST']._serialized_start=3000
|
|
89
|
+
_globals['_CREATEJOBREQUEST']._serialized_end=3406
|
|
90
|
+
_globals['_UPDATEJOBREQUEST']._serialized_start=3409
|
|
91
|
+
_globals['_UPDATEJOBREQUEST']._serialized_end=3705
|
|
92
|
+
_globals['_CLAIMJOBREQUEST']._serialized_start=3707
|
|
93
|
+
_globals['_CLAIMJOBREQUEST']._serialized_end=3759
|
|
94
|
+
_globals['_JOB']._serialized_start=3762
|
|
95
|
+
_globals['_JOB']._serialized_end=4744
|
|
96
|
+
_globals['_ROUTINE']._serialized_start=4747
|
|
97
|
+
_globals['_ROUTINE']._serialized_end=5271
|
|
98
|
+
_globals['_ROUTINESRESPONSE']._serialized_start=5273
|
|
99
|
+
_globals['_ROUTINESRESPONSE']._serialized_end=5333
|
|
100
|
+
_globals['_DATAPREVIEWREQUEST']._serialized_start=5336
|
|
101
|
+
_globals['_DATAPREVIEWREQUEST']._serialized_end=5509
|
|
102
|
+
_globals['_DATAPREVIEWRESPONSE']._serialized_start=5512
|
|
103
|
+
_globals['_DATAPREVIEWRESPONSE']._serialized_end=5827
|
|
104
|
+
_globals['_DATAROW']._serialized_start=5829
|
|
105
|
+
_globals['_DATAROW']._serialized_end=5854
|
|
106
|
+
_globals['_ADDSOURCEREQUEST']._serialized_start=5857
|
|
107
|
+
_globals['_ADDSOURCEREQUEST']._serialized_end=6023
|
|
108
|
+
_globals['_ADDSOURCERESPONSE']._serialized_start=6026
|
|
109
|
+
_globals['_ADDSOURCERESPONSE']._serialized_end=6176
|
|
110
|
+
_globals['_AGENTACTIONREQUEST']._serialized_start=6179
|
|
111
|
+
_globals['_AGENTACTIONREQUEST']._serialized_end=6334
|
|
112
|
+
_globals['_AGENTACTIONRESPONSE']._serialized_start=6337
|
|
113
|
+
_globals['_AGENTACTIONRESPONSE']._serialized_end=6601
|
|
114
|
+
_globals['_WORKERSERVICE']._serialized_start=6604
|
|
115
|
+
_globals['_WORKERSERVICE']._serialized_end=7466
|
|
112
116
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -4,7 +4,7 @@ import grpc
|
|
|
4
4
|
import warnings
|
|
5
5
|
|
|
6
6
|
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
|
7
|
-
from . import qalita_pb2 as qalita__pb2
|
|
7
|
+
from qalita.grpc.protos import qalita_pb2 as qalita__pb2
|
|
8
8
|
|
|
9
9
|
GRPC_GENERATED_VERSION = '1.76.0'
|
|
10
10
|
GRPC_VERSION = grpc.__version__
|