Skip to content

Commit 4d62957

Browse files
alagishevweb-flowzloiadilNetcrackerCLPLCIkarpov-aleksandr
authored
chore: Release 25.4.6 (#331)
* feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB Related issue: Netcracker/.github#209 * Merge pull request #268 from Netcracker/split-api-internal-external docs: deleted APIHUB API spec and add only "system info" endpoint and… * feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB (#278) * feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB Related issue: Netcracker/.github#209, Netcracker/.github#223 * feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB Related issue: Netcracker/.github#209, Netcracker/.github#223 --------- Co-authored-by: borislavr <noreply@github.com> * fix: business_metric table inconsistent data (#261) * fix: add release_versions_published business metric handling during version patch + data fix * chore: add release_versions_deleted business metric * chore(ci): remove security-scan-apihub workflow (#284) Related issue: Netcracker/.github#236 Co-authored-by: borislavr <noreply@github.com> * feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB (#286) Related issue: Netcracker/.github#209, Netcracker/.github#223 Co-authored-by: borislavr <noreply@github.com> * feat: onboard api-spec-exposure lib (#271) * feat: onboard api-spec-exposure lib * feat: update log messages * feat: switch to release library version --------- Co-authored-by: Aleksandr Agishev <aleksandr.agishev.qubership@gmail.com> * fix: local run (#290) * doc: add mandatory for local run config element * feat: MCP server PoC (#287) * feat: initial PoC implementation - MCP API on stubs * feat: MCP with APIHUB services * feat: add logs, improve prompts * feat: add api-key authentication for MCP endpoint * feat: add parameter to limit MCP requests to workspace configured via MCP_WORKSPACE env var * feat: switch MCP endpoint from /mcp to /api/mcp * Add lite operations search * feat: initial implementation for AI Chat API and OpenAI client * add lite search filters * Update search query * feat: refactoring #1 + adding packages_list MCP resource * feat: refactoring #2 * feat: prompts tuning * feat: refactoring #3 * fix: redo OpenAI proxy support * feat: switch to OpenAI client + add caching for resource api_packages_list * fix: fix proxy parameter for OpenAI * fix: filter out RUNENV packages * fix: adaptation for gpt-5 model * fix: change default model to gpt-5 to be aligned with api-linter * feat: add LLM parameters to config + some errors logging * chore: go mod tidy + renew migration number * feat: bring back old search, make SearchLite in MCP only * feat: add LLM instruction about search query features * feat: lite search v2 (#291) * Updated lite search * Update search logic * Lite search: correct filter for API type. Lite search mode in global search. --------- Co-authored-by: Viacheslav Lunev <viacheslav.lunev.qubership@gmail.com> * MCP refactoring * mcp refactoring * remove comment * feat: adaptation for merging to develop * feat: fix build --------- Co-authored-by: Viacheslav Lunev <viacheslav.lunev.qubership@gmail.com> * chore: deps: bump github.com/mark3labs/mcp-go (#299) Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go) from 0.42.0 to 0.43.2. - [Release notes](https://github.com/mark3labs/mcp-go/releases) - [Commits](mark3labs/mcp-go@v0.42.0...v0.43.2) --- updated-dependencies: - dependency-name: github.com/mark3labs/mcp-go dependency-version: 0.43.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump golang.org/x/net in /qubership-apihub-service (#298) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.46.0 to 0.48.0. - [Commits](golang/net@v0.46.0...v0.48.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-version: 0.48.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump github.com/openai/openai-go/v3 (#296) Bumps [github.com/openai/openai-go/v3](https://github.com/openai/openai-go) from 3.8.1 to 3.12.0. - [Release notes](https://github.com/openai/openai-go/releases) - [Changelog](https://github.com/openai/openai-go/blob/main/CHANGELOG.md) - [Commits](openai/openai-go@v3.8.1...v3.12.0) --- updated-dependencies: - dependency-name: github.com/openai/openai-go/v3 dependency-version: 3.12.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump github.com/go-playground/validator/v10 (#297) Bumps [github.com/go-playground/validator/v10](https://github.com/go-playground/validator) from 10.28.0 to 10.29.0. - [Release notes](https://github.com/go-playground/validator/releases) - [Commits](go-playground/validator@v10.28.0...v10.29.0) --- updated-dependencies: - dependency-name: github.com/go-playground/validator/v10 dependency-version: 10.29.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump golang.org/x/oauth2 in /qubership-apihub-service (#295) Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.33.0 to 0.34.0. - [Commits](golang/oauth2@v0.33.0...v0.34.0) --- updated-dependencies: - dependency-name: golang.org/x/oauth2 dependency-version: 0.34.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: updated apihub api's (#288) * docs: updated apihub api's * docs: deleted not used schemas * docs: updated apihub api to internal/external, admin_internal/external * docs: added sso operation * docs: add new API endpoints for logging and authentication features * docs: update APIHUB API schema with new ProtobufOperationMeta and add PublishBuildConfig and ExportBuildConfig components * feat: Revised GQL support + Async API initial support (#292) * feat: adaptation to changes due to bulk calculation of changes between package versions (mapping of operation to documentId + operation data hash calculation on BE side) * feat: internal documents support * feat: remove graphql operations data persistence * feat: operation groups migration after operationId changes * fix: migration for dashboards * feat: initial support for AsyncAPI 3.0 --------- Co-authored-by: Aleksandr Agishev <aleksandr.agishev.qubership@gmail.com> * fix: remove FK to enable publication with sources archives stored to S3 (#282) * fix: remove FK published_sources_published_sources_archives_checksum_fk to enable publication with sources archives stored to S3 * fix: increment new migration number after rebasing to develop --------- Co-authored-by: Aleksandr Agishev <aleksandr.agishev.qubership@gmail.com> * fix: lite search parameters * fix: fix api spec file * fix: fix one more issue in api spec * fix: spectral errors fix (#301) * feat: Add AsyncAPI support (#305) Co-authored-by: Aleksandr Agishev <aleksandr.agishev.qubership@gmail.com> * chore: remove unused library * feat: Operation changes summary (#304) Get operation changes summary * chore: deps: bump github.com/coreos/go-oidc/v3 (#273) Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc) from 3.16.0 to 3.17.0. - [Release notes](https://github.com/coreos/go-oidc/releases) - [Commits](coreos/go-oidc@v3.16.0...v3.17.0) --- updated-dependencies: - dependency-name: github.com/coreos/go-oidc/v3 dependency-version: 3.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump github.com/go-playground/validator/v10 (#307) Bumps [github.com/go-playground/validator/v10](https://github.com/go-playground/validator) from 10.29.0 to 10.30.0. - [Release notes](https://github.com/go-playground/validator/releases) - [Commits](go-playground/validator@v10.29.0...v10.30.0) --- updated-dependencies: - dependency-name: github.com/go-playground/validator/v10 dependency-version: 10.30.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump github.com/openai/openai-go/v3 (#306) Bumps [github.com/openai/openai-go/v3](https://github.com/openai/openai-go) from 3.12.0 to 3.15.0. - [Release notes](https://github.com/openai/openai-go/releases) - [Changelog](https://github.com/openai/openai-go/blob/main/CHANGELOG.md) - [Commits](openai/openai-go@v3.12.0...v3.15.0) --- updated-dependencies: - dependency-name: github.com/openai/openai-go/v3 dependency-version: 3.15.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: add operation.documentId (#308) * Add includeData flag to get operation endpoint. (#309) * docs: add version and comparison internal documents API (#312) * fix: docs: db connection script * chore: deps: bump golang.org/x/net in /qubership-apihub-service (#315) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.48.0 to 0.49.0. - [Commits](golang/net@v0.48.0...v0.49.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-version: 0.49.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump github.com/minio/minio-go/v7 (#317) Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.97 to 7.0.98. - [Release notes](https://github.com/minio/minio-go/releases) - [Commits](minio/minio-go@v7.0.97...v7.0.98) --- updated-dependencies: - dependency-name: github.com/minio/minio-go/v7 dependency-version: 7.0.98 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump github.com/sirupsen/logrus (#318) Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.9.3 to 1.9.4. - [Release notes](https://github.com/sirupsen/logrus/releases) - [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md) - [Commits](sirupsen/logrus@v1.9.3...v1.9.4) --- updated-dependencies: - dependency-name: github.com/sirupsen/logrus dependency-version: 1.9.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump github.com/go-playground/validator/v10 (#311) Bumps [github.com/go-playground/validator/v10](https://github.com/go-playground/validator) from 10.30.0 to 10.30.1. - [Release notes](https://github.com/go-playground/validator/releases) - [Commits](go-playground/validator@v10.30.0...v10.30.1) --- updated-dependencies: - dependency-name: github.com/go-playground/validator/v10 dependency-version: 10.30.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: deps: bump github.com/openai/openai-go/v3 (#313) Bumps [github.com/openai/openai-go/v3](https://github.com/openai/openai-go) from 3.15.0 to 3.16.0. - [Release notes](https://github.com/openai/openai-go/releases) - [Changelog](https://github.com/openai/openai-go/blob/main/CHANGELOG.md) - [Commits](openai/openai-go@v3.15.0...v3.16.0) --- updated-dependencies: - dependency-name: github.com/openai/openai-go/v3 dependency-version: 3.16.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: API improvements (#314) * chore: API improvements * fix: linter errors * fix: builds cleanup (#321) * fix: Update paging instruction for MCP search tool (#319) * Update paging instruction for MCP search tool. * Fix typo --------- Co-authored-by: Viacheslav Lunev <viacheslav.lunev.qubeship@gmail.com> * chore: deps: bump github.com/zeebo/xxh3 in /qubership-apihub-service (#323) Bumps [github.com/zeebo/xxh3](https://github.com/zeebo/xxh3) from 1.0.2 to 1.1.0. - [Commits](zeebo/xxh3@v1.0.2...v1.1.0) --- updated-dependencies: - dependency-name: github.com/zeebo/xxh3 dependency-version: 1.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: Update external logs print * fix: operation changes summary for dashboards (#325) * fix: operation changes summary for dashboards * fix: operation changes summary for dashboards * fix: comparison internal document list for dashboards * feat: Admin API to get build result and build sources (#328) * chore: deps: bump github.com/openai/openai-go/v3 (#327) Bumps [github.com/openai/openai-go/v3](https://github.com/openai/openai-go) from 3.16.0 to 3.17.0. - [Release notes](https://github.com/openai/openai-go/releases) - [Changelog](https://github.com/openai/openai-go/blob/main/CHANGELOG.md) - [Commits](openai/openai-go@v3.16.0...v3.17.0) --- updated-dependencies: - dependency-name: github.com/openai/openai-go/v3 dependency-version: 3.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: MCP.tools.get_rest_api_operations_specification was broken (#330) * chore: fix automerge hallucination --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: borislavr <noreply@github.com> Co-authored-by: Adil Bektursunov <60805564+zloiadil@users.noreply.github.com> Co-authored-by: NetcrackerCLPLCI <112641018+NetcrackerCLPLCI@users.noreply.github.com> Co-authored-by: Aleksandr Karpov <aleksandr.v.karpov.qubership@gmail.com> Co-authored-by: Viacheslav Lunev <viacheslav.lunev.qubership@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: b41ex <bochencev.qubership@gmail.com> Co-authored-by: Viacheslav Lunev <viacheslav.lunev.qubeship@gmail.com>
2 parents bee5a2f + 6220bcc commit 4d62957

File tree

86 files changed

+6692
-3745
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+6692
-3745
lines changed

docs/api/APIHUB_API.yaml

Lines changed: 1336 additions & 903 deletions
Large diffs are not rendered by default.

docs/api/APIHUB_API_internal.yaml

Lines changed: 822 additions & 847 deletions
Large diffs are not rendered by default.

docs/api/Admin API.yaml

Lines changed: 781 additions & 124 deletions
Large diffs are not rendered by default.

docs/api/Admin_API_internal.yaml

Lines changed: 743 additions & 0 deletions
Large diffs are not rendered by default.

docs/postgres_useful_queries/apihub-postgresql_dev.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ kubectl config set-credentials admin/k8s-server --token="K8S_TOKEN_HERE"
55
kubectl config set-context context-admin/k8s-server --user=admin/k8s-server --namespace=apihub-postgresql --cluster=k8s-server
66
kubectl config use-context context-admin/k8s-server
77

8-
MAIN_POD_ID=$(kubectl get pods -l pgtype=master -o name 2>/dev/null | grep -Po "(pg-patroni-.*?-.*?-.*?\$)")
8+
MAIN_POD_ID=$(kubectl get pods -l pgtype=master -o name 2>/dev/null | grep -Po "(pg-patroni-.*?\$)")
99
echo "main pod = $MAIN_POD_ID"
1010

1111
kubectl port-forward $MAIN_POD_ID 15432:5432

qubership-apihub-service/Service.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -329,16 +329,17 @@ func main() {
329329
dataMigrationController := mController.NewTempMigrationController(dbMigrationService, roleService.IsSysadm)
330330
activityTrackingController := controller.NewActivityTrackingController(activityTrackingService, roleService, ptHandler)
331331
comparisonController := controller.NewComparisonController(operationService, versionService, buildService, roleService, comparisonService, monitoringService, ptHandler)
332-
buildCleanupController := controller.NewBuildCleanupController(dbCleanupService, roleService.IsSysadm)
333332
transitionController := controller.NewTransitionController(transitionService, roleService.IsSysadm)
334333
businessMetricController := controller.NewBusinessMetricController(businessMetricService, excelService, roleService.IsSysadm)
335334
transformationController := controller.NewTransformationController(roleService, buildService, versionService, transformationService, operationGroupService)
336-
minioStorageController := controller.NewMinioStorageController(minioStorageCreds, minioStorageService)
335+
minioStorageController := controller.NewMinioStorageController(minioStorageCreds, minioStorageService, roleService)
337336
personalAccessTokenController := controller.NewPersonalAccessTokenController(personalAccessTokenService)
338337
packageExportConfigController := controller.NewPackageExportConfigController(roleService, packageExportConfigService, ptHandler)
339338
systemStatsController := controller.NewSystemStatsController(systemStatsService, roleService)
339+
internalDocsController := controller.NewInternalDocumentController(publishedService, roleService)
340340
mcpController := controller.NewMCPController(mcpService)
341341
chatController := controller.NewChatController(chatService)
342+
buildController := controller.NewBuildController(buildResultService, buildService, roleService.IsSysadm)
342343

343344
r.HandleFunc("/api/v1/system/info", security.Secure(systemInfoController.GetSystemInfo)).Methods(http.MethodGet)
344345
r.HandleFunc("/api/v1/system/configuration", samlAuthController.GetSystemSSOInfo_deprecated).Methods(http.MethodGet) //deprecated
@@ -361,7 +362,7 @@ func main() {
361362
r.HandleFunc("/api/v2/packages/{packageId}", security.Secure(packageController.GetPackage)).Methods(http.MethodGet)
362363
r.HandleFunc("/api/v2/packages/{packageId}/status", security.Secure(packageController.GetPackageStatus)).Methods(http.MethodGet)
363364
r.HandleFunc("/api/v2/packages", security.Secure(packageController.GetPackagesList)).Methods(http.MethodGet)
364-
r.HandleFunc("/api/v2/packages/{packageId}/publish/availableStatuses", security.Secure(packageController.GetAvailableVersionStatusesForPublish)).Methods(http.MethodGet)
365+
r.HandleFunc("/api/v2/packages/{packageId}/publish/availableStatuses", security.Secure(packageController.GetAvailableVersionStatusesForPublish_deprecated)).Methods(http.MethodGet) // deprecated
365366

366367
r.HandleFunc("/api/v4/packages/{packageId}/apiKeys", security.Secure(apihubApiKeyController.GetApiKeys)).Methods(http.MethodGet)
367368
r.HandleFunc("/api/v4/packages/{packageId}/apiKeys", security.Secure(apihubApiKeyController.CreateApiKey)).Methods(http.MethodPost)
@@ -394,15 +395,15 @@ func main() {
394395

395396
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/files/{slug}/raw", security.Secure(versionController.GetVersionedContentFileRaw)).Methods(http.MethodGet)
396397
r.HandleFunc("/api/v2/sharedFiles/{sharedFileId}", security.NoSecure(versionController.GetSharedContentFile)).Methods(http.MethodGet)
397-
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/changes", security.Secure(versionController.GetVersionChanges)).Methods(http.MethodGet)
398-
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/problems", security.Secure(versionController.GetVersionProblems)).Methods(http.MethodGet)
398+
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/changes", security.Secure(versionController.GetVersionChanges_deprecated)).Methods(http.MethodGet) // deprecated
399+
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/problems", security.Secure(versionController.GetVersionProblems_deprecated)).Methods(http.MethodGet) // deprecated
399400
r.HandleFunc("/api/v2/sharedFiles", security.Secure(versionController.SharePublishedFile)).Methods(http.MethodPost)
400401

401402
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/doc", security.Secure(exportController.GenerateVersionDoc)).Methods(http.MethodGet) // deprecated
402403
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/files/{slug}/doc", security.Secure(exportController.GenerateFileDoc)).Methods(http.MethodGet) // deprecated
403404

404-
r.HandleFunc("/api/v2/auth/saml", security.NoSecure(samlAuthController.StartSamlAuthentication_deprecated)).Methods(http.MethodGet) // deprecated.
405-
r.HandleFunc("/login/sso/saml", security.RefreshToken(samlAuthController.StartSamlAuthentication_deprecated)).Methods(http.MethodGet)
405+
r.HandleFunc("/api/v2/auth/saml", security.NoSecure(samlAuthController.StartSamlAuthentication_deprecated)).Methods(http.MethodGet) // deprecated
406+
r.HandleFunc("/login/sso/saml", security.RefreshToken(samlAuthController.StartSamlAuthentication_deprecated)).Methods(http.MethodGet) // deprecated
406407
r.HandleFunc("/saml/acs", security.NoSecure(samlAuthController.AssertionConsumerHandler_deprecated)).Methods(http.MethodPost)
407408
r.HandleFunc("/saml/metadata", security.NoSecure(samlAuthController.ServeMetadata_deprecated)).Methods(http.MethodGet)
408409

@@ -442,6 +443,7 @@ func main() {
442443
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/{apiType}/deprecated", security.Secure(operationController.GetDeprecatedOperationsList)).Methods(http.MethodGet)
443444
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/{apiType}/operations/{operationId}/deprecatedItems", security.Secure(operationController.GetOperationDeprecatedItems)).Methods(http.MethodGet)
444445
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/deprecated/summary", security.Secure(operationController.GetDeprecatedOperationsSummary)).Methods(http.MethodGet)
446+
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/{apiType}/operations/{operationId}/changes/summary", security.Secure(operationController.GetOperationChangesSummary)).Methods(http.MethodGet)
445447

446448
r.HandleFunc("/api/v3/packages/{packageId}/versions/{version}/documents/{slug}", security.Secure(versionController.GetVersionedDocument)).Methods(http.MethodGet)
447449
r.HandleFunc("/api/v2/packages/{packageId}/versions/{version}/documents", security.Secure(versionController.GetVersionDocuments)).Methods(http.MethodGet)
@@ -479,14 +481,15 @@ func main() {
479481
r.HandleFunc("/api/internal/migrate/operations/{migrationId}/suspiciousBuilds", security.Secure(dataMigrationController.GetSuspiciousBuilds)).Methods(http.MethodGet)
480482
r.HandleFunc("/api/internal/migrate/operations/{migrationId}/perf", security.Secure(dataMigrationController.GetMigrationPerfReport)).Methods(http.MethodGet)
481483
r.HandleFunc("/api/internal/migrate/operations/cancel", security.Secure(dataMigrationController.CancelRunningMigrations)).Methods(http.MethodPost)
482-
r.HandleFunc("/api/internal/migrate/operations/cleanup", security.Secure(buildCleanupController.StartMigrationBuildCleanup)).Methods(http.MethodPost)
483-
r.HandleFunc("/api/internal/migrate/operations/cleanup/{id}", security.Secure(buildCleanupController.GetMigrationBuildCleanupResult)).Methods(http.MethodGet)
484484

485485
r.HandleFunc("/api/v2/admin/transition/move", security.Secure(transitionController.MoveOrRenamePackage)).Methods(http.MethodPost)
486486
r.HandleFunc("/api/v2/admin/transition/move/{id}", security.Secure(transitionController.GetMoveStatus)).Methods(http.MethodGet)
487487
r.HandleFunc("/api/v2/admin/transition/activity", security.Secure(transitionController.ListActivities)).Methods(http.MethodGet)
488488
r.HandleFunc("/api/v2/admin/transition", security.Secure(transitionController.ListPackageTransitions)).Methods(http.MethodGet)
489489

490+
r.HandleFunc("/api/v2/admin/builds/{buildId}/result", security.Secure(buildController.GetBuildResult)).Methods(http.MethodGet)
491+
r.HandleFunc("/api/v2/admin/builds/{buildId}/sources", security.Secure(buildController.GetBuildSources)).Methods(http.MethodGet)
492+
490493
r.HandleFunc("/api/v2/admin/system/stats", security.Secure(systemStatsController.GetSystemStats)).Methods(http.MethodGet)
491494

492495
r.HandleFunc("/api/v2/compare", security.Secure(comparisonController.CompareTwoVersions)).Methods(http.MethodPost)
@@ -522,6 +525,11 @@ func main() {
522525
r.HandleFunc("/api/v1/deleted/packages/{packageId}/versions", security.Secure(versionController.GetDeletedPackageVersionsList)).Methods(http.MethodGet)
523526
r.HandleFunc("/api/v1/deleted/packages/{packageId}/versions/{version}", security.Secure(versionController.GetDeletedPackageVersionContent)).Methods(http.MethodGet)
524527

528+
r.HandleFunc("/api/v1/packages/{packageId}/versions/{version}/version-internal-documents", security.Secure(internalDocsController.GetVersionInternalDocuments)).Methods(http.MethodGet)
529+
r.HandleFunc("/api/v1/version-internal-documents/{hash}", security.Secure(internalDocsController.GetVersionInternalDocumentData)).Methods(http.MethodGet)
530+
r.HandleFunc("/api/v1/packages/{packageId}/versions/{version}/comparison-internal-documents", security.Secure(internalDocsController.GetComparisonInternalDocuments)).Methods(http.MethodGet)
531+
r.HandleFunc("/api/v1/comparison-internal-documents/{hash}", security.Secure(internalDocsController.GetComparisonInternalDocumentData)).Methods(http.MethodGet)
532+
525533
//debug + cleanup
526534
if !systemInfoService.GetSystemInfo().ProductionMode {
527535
r.HandleFunc("/api/internal/users/{userId}/systemRole", security.Secure(roleController.TestSetUserSystemRole)).Methods(http.MethodPost)

qubership-apihub-service/archive/BuildResultArchive.go

Lines changed: 64 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -25,47 +25,59 @@ import (
2525
)
2626

2727
const (
28-
InfoFilePath = "info.json"
29-
DocumentsFilePath = "documents.json"
30-
ComparisonsFilePath = "comparisons.json"
31-
OperationsFilePath = "operations.json"
32-
BuilderNotificationsFilePath = "notifications.json"
33-
ChangelogFilePath = "changelog.json"
34-
35-
DocumentsRootFolder = "documents/"
36-
ComparisonsRootFolder = "comparisons/"
37-
OperationFilesRootFolder = "operations/"
28+
InfoFilePath = "info.json"
29+
DocumentsFilePath = "documents.json"
30+
ComparisonsFilePath = "comparisons.json"
31+
OperationsFilePath = "operations.json"
32+
BuilderNotificationsFilePath = "notifications.json"
33+
ChangelogFilePath = "changelog.json"
34+
VersionInternalDocumentsFilePath = "version-internal-documents.json"
35+
ComparisonInternalDocumentsFilePath = "comparison-internal-documents.json"
36+
37+
DocumentsRootFolder = "documents/"
38+
ComparisonsRootFolder = "comparisons/"
39+
OperationFilesRootFolder = "operations/"
40+
VersionInternalDocumentsRootFolder = "version-internal-documents/"
41+
ComparisonInternalDocumentsRootFolder = "comparison-internal-documents/"
3842
)
3943

4044
type BuildResultArchive struct {
4145
ZipReader *zip.Reader
4246

43-
InfoFile *zip.File
44-
DocumentsFile *zip.File
45-
ComparisonsFile *zip.File
46-
OperationsFile *zip.File
47-
BuilderNotificationsFile *zip.File
48-
ChangelogFile *zip.File
49-
50-
DocumentsHeaders map[string]*zip.File
51-
OperationFileHeaders map[string]*zip.File
52-
ComparisonsFileHeaders map[string]*zip.File
53-
UncategorizedFileHeaders map[string]*zip.File
54-
55-
PackageInfo view.PackageInfoFile
56-
PackageDocuments view.PackageDocumentsFile
57-
PackageOperations view.PackageOperationsFile
58-
PackageComparisons view.PackageComparisonsFile
59-
BuilderNotifications view.BuilderNotificationsFile
47+
InfoFile *zip.File
48+
DocumentsFile *zip.File
49+
ComparisonsFile *zip.File
50+
OperationsFile *zip.File
51+
BuilderNotificationsFile *zip.File
52+
ChangelogFile *zip.File
53+
VersionInternalDocumentsFile *zip.File
54+
ComparisonInternalDocumentsFile *zip.File
55+
56+
DocumentsHeaders map[string]*zip.File
57+
OperationFileHeaders map[string]*zip.File
58+
ComparisonsFileHeaders map[string]*zip.File
59+
VersionInternalDocumentsHeaders map[string]*zip.File
60+
ComparisonInternalDocumentsHeaders map[string]*zip.File
61+
UncategorizedFileHeaders map[string]*zip.File
62+
63+
PackageInfo view.PackageInfoFile
64+
PackageDocuments view.PackageDocumentsFile
65+
PackageOperations view.PackageOperationsFile
66+
PackageComparisons view.PackageComparisonsFile
67+
BuilderNotifications view.BuilderNotificationsFile
68+
VersionInternalDocuments view.VersionInternalDocumentsFile
69+
ComparisonInternalDocuments view.ComparisonInternalDocumentsFile
6070
}
6171

6272
func NewBuildResultArchive(zipReader *zip.Reader) *BuildResultArchive {
6373
result := &BuildResultArchive{
64-
ZipReader: zipReader,
65-
DocumentsHeaders: map[string]*zip.File{},
66-
OperationFileHeaders: map[string]*zip.File{},
67-
ComparisonsFileHeaders: map[string]*zip.File{},
68-
UncategorizedFileHeaders: map[string]*zip.File{},
74+
ZipReader: zipReader,
75+
DocumentsHeaders: map[string]*zip.File{},
76+
OperationFileHeaders: map[string]*zip.File{},
77+
ComparisonsFileHeaders: map[string]*zip.File{},
78+
VersionInternalDocumentsHeaders: map[string]*zip.File{},
79+
ComparisonInternalDocumentsHeaders: map[string]*zip.File{},
80+
UncategorizedFileHeaders: map[string]*zip.File{},
6981
}
7082
result.splitFiles()
7183
return result
@@ -91,6 +103,14 @@ func (a *BuildResultArchive) ReadBuilderNotifications(required bool) error {
91103
return a.readFile(BuilderNotificationsFilePath, a.BuilderNotificationsFile, &a.BuilderNotifications, required)
92104
}
93105

106+
func (a *BuildResultArchive) ReadVersionInternalDocuments(required bool) error {
107+
return a.readFile(VersionInternalDocumentsFilePath, a.VersionInternalDocumentsFile, &a.VersionInternalDocuments, required)
108+
}
109+
110+
func (a *BuildResultArchive) ReadComparisonInternalDocuments(required bool) error {
111+
return a.readFile(ComparisonsFilePath, a.ComparisonInternalDocumentsFile, &a.ComparisonInternalDocuments, required)
112+
}
113+
94114
func (a *BuildResultArchive) readFile(filePath string, file *zip.File, v interface{}, required bool) error {
95115
if file == nil {
96116
if required {
@@ -144,6 +164,10 @@ func (a *BuildResultArchive) splitFiles() {
144164
a.BuilderNotificationsFile = zipFile
145165
case ChangelogFilePath:
146166
a.ChangelogFile = zipFile
167+
case VersionInternalDocumentsFilePath:
168+
a.VersionInternalDocumentsFile = zipFile
169+
case ComparisonInternalDocumentsFilePath:
170+
a.ComparisonInternalDocumentsFile = zipFile
147171
default:
148172
{
149173
if strings.HasPrefix(filepath, DocumentsRootFolder) {
@@ -158,6 +182,14 @@ func (a *BuildResultArchive) splitFiles() {
158182
zipFilePtr := zipFile
159183
a.ComparisonsFileHeaders[strings.TrimPrefix(filepath, ComparisonsRootFolder)] = zipFilePtr
160184
continue
185+
} else if strings.HasPrefix(filepath, VersionInternalDocumentsRootFolder) {
186+
zipFilePtr := zipFile
187+
a.VersionInternalDocumentsHeaders[strings.TrimPrefix(filepath, VersionInternalDocumentsRootFolder)] = zipFilePtr
188+
continue
189+
} else if strings.HasPrefix(filepath, ComparisonInternalDocumentsRootFolder) {
190+
zipFilePtr := zipFile
191+
a.ComparisonInternalDocumentsHeaders[strings.TrimPrefix(filepath, ComparisonInternalDocumentsRootFolder)] = zipFilePtr
192+
continue
161193
} else {
162194
a.UncategorizedFileHeaders[filepath] = zipFile
163195
}

0 commit comments

Comments
 (0)