Skip to content

Development#1191

Merged
GregJohnStewart merged 31 commits into
mainfrom
development
Apr 9, 2026
Merged

Development#1191
GregJohnStewart merged 31 commits into
mainfrom
development

Conversation

@GregJohnStewart
Copy link
Copy Markdown
Contributor

@GregJohnStewart GregJohnStewart commented Apr 9, 2026

Checklist:

  • Tested

Summary by CodeRabbit

  • New Features

    • Added JAX-RS CXF client code generation support with Docker configuration and setup instructions.
    • Enhanced OpenAPI schema documentation with detailed type definitions and field metadata.
  • Chores

    • Updated core dependencies (Quarkus 3.34.2, CycloneDX BOM 3.2.3).
    • Rebranded API from Base Station to Core API across documentation and configuration.

GregJohnStewart and others added 27 commits August 16, 2025 21:24
Bumps org.cyclonedx.bom from 3.2.2 to 3.2.3.

---
updated-dependencies:
- dependency-name: org.cyclonedx.bom
  dependency-version: 3.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…ore-api---review-update-improve-openapi-spec

Dev/692 fr core api   review update improve openapi spec
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 9, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 08b1668a-0821-4de9-9fc5-35a6e985b450

📥 Commits

Reviewing files that changed from the base of the PR and between a164f68 and 9b8bda0.

📒 Files selected for processing (131)
  • software/core/oqm-core-api/build.gradle
  • software/core/oqm-core-api/clientGen/README.md
  • software/core/oqm-core-api/clientGen/jaxrs-cxf-client-config.json
  • software/core/oqm-core-api/gradle.properties
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/config/CoreApiInteractingEntity.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/config/OpenApiTweaks.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/MainFileObjectProvider.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/MainObjectProvider.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/ObjectProvider.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/identifiers/IdGeneratorCrud.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/interactingEntity/InteractingEntityEndpoints.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/ItemCategoriesCrud.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/ItemCheckoutCrud.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/ItemListCrud.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/UnitsEndpoints.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/items/InBlockEndpoints.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/items/InventoryItemsCrud.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/items/StoredEndpoints.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/items/StoredInItemEndpoints.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/items/TransactionEndpoints.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/management/InventoryManagement.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/inventory/storage/StorageCrud.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/media/FileGet.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/media/ImageCrud.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/interfaces/endpoints/media/files/FileAttachmentCrud.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/AttKeywordMainObject.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/FileMainObject.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/ImagedMainObject.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/MainObject.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/Versionable.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/ObjectHistoryEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/details/FieldsAffectedHistoryDetail.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/details/FromSchemaUpgradeDetail.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/details/HistoryDetail.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/details/ItemTransactionDetail.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/details/NoteHistoryDetail.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/CreateEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/DeleteEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/ReCreateEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/SchemaUpgradeEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/UpdateEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/file/NewFileVersionEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/item/ItemLowStockEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/item/expiry/ItemExpiredEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/item/expiry/ItemExpiryWarningEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/itemList/ItemListActionAddEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/itemList/ItemListActionDeleteEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/itemList/ItemListActionUpdateEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/history/events/itemList/ItemListApplyEvent.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntity.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntityReference.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/GeneralService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/user/User.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/media/FileHashes.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/media/FileMetadata.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/checkout/ItemAmountCheckout.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/checkout/ItemCheckout.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/checkout/ItemWholeCheckout.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/InventoryItem.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/StorageType.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/identifiers/generation/IdentifierGenerator.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/stored/AmountStored.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/stored/Stored.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/stored/UniqueStored.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/add/AddAmountTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/add/AddWholeTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/checkin/CheckinFullTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/checkin/CheckinLossTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/checkin/CheckinPartTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/checkout/CheckoutAmountTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/checkout/CheckoutWholeTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/set/SetAmountTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/subtract/SubAmountTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/subtract/SubWholeTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/transfer/TransferAmountTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/items/transactions/transactions/transfer/TransferWholeTransaction.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/storage/storageBlock/StorageBlock.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/media/file/FileAttachmentGet.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/media/file/FileUploadBody.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/AppliedTransactionSearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/HistorySearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/IdGeneratorSearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/InventoryItemSearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/ItemCategorySearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/ItemCheckoutSearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/OqmMongoDbSearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/SearchObject.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/StorageBlockSearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/search/StoredSearch.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/unit/custom/NewBaseCustomUnitRequest.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/unit/custom/NewCustomUnitRequest.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/rest/unit/custom/NewDerivedCustomUnitRequest.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/ItemStatsService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/HasParentObjService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/InteractingEntityService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/InventoryItemService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/ItemListService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/MongoHistoriedObjectService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/MongoObjectService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/StoredService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/file/MongoFileService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/file/MongoHistoriedFileService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/search/PagingCalculations.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/search/PagingOptions.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/mongo/search/SearchResult.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/service/serviceState/db/OqmDatabaseService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/utils/FileUtils.java
  • software/core/oqm-core-api/src/main/resources/META-INF/openapi.yaml
  • software/core/oqm-core-api/src/main/resources/application.yaml
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/storage/storageBlock/StorageBlockTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/service/mongo/AppliedTransactionServiceTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/service/mongo/ItemCategoryServiceTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/service/mongo/MongoDbAwareServiceTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/service/serviceState/db/OqmDatabaseServiceTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/testResources/data/StorageBlockTestObjectCreator.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/testResources/testClasses/MongoHistoriedServiceTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/testResources/testClasses/MongoObjectServiceTest.java
  • software/core/oqm-core-api/src/test/resources/application.yaml
  • software/libs/core-api-lib-quarkus/README.md
  • software/libs/core-api-lib-quarkus/deployment/pom.xml
  • software/libs/core-api-lib-quarkus/deployment/src/main/java/tech/ebp/oqm/lib/core/api/quarkus/deployment/CoreApiLibQuarkusProcessor.java
  • software/libs/core-api-lib-quarkus/deployment/src/main/java/tech/ebp/oqm/lib/core/api/quarkus/deployment/config/CoreApiLibBuildTimeConfig.java
  • software/libs/core-api-lib-quarkus/deployment/src/main/java/tech/ebp/oqm/lib/core/api/quarkus/deployment/testContainers/OqmCoreApiWebServiceContainer.java
  • software/libs/core-api-lib-quarkus/integration-tests/pom.xml
  • software/libs/core-api-lib-quarkus/pom.xml
  • software/libs/core-api-lib-quarkus/runtime/pom.xml
  • software/plugins/alert-messenger/build.gradle
  • software/plugins/alert-messenger/gradle.properties
  • software/plugins/alert-messenger/src/main/java/tech/ebp/oqm/plugin/alertMessenger/interfaces/ui/UiInterface.java
  • software/plugins/alert-messenger/src/main/resources/application.yaml

📝 Walkthrough

Walkthrough

A large refactor converting many API/path identifier types from String to org.bson.types.ObjectId, removing String→ObjectId overloads, bumping project/Quarkus/plugin versions, adding MicroProfile OpenAPI @Schema metadata widely, introducing OpenApiTweaks, adding FileUtils.TIKA, and updating configs, tests, and clientGen docs.

Changes

Cohort / File(s) Summary
Build & Versioning
software/core/oqm-core-api/build.gradle, software/core/oqm-core-api/gradle.properties, software/libs/**/pom.xml, software/libs/core-api-lib-quarkus/pom.xml, software/libs/core-api-lib-quarkus/deployment/pom.xml, software/libs/core-api-lib-quarkus/integration-tests/pom.xml
Bumped project versions to 4.4.4-SNAPSHOT, quarkus/plugin versions to 3.34.2, and CycloneDX plugin to 3.2.3; updated parent POM and related version pins.
Endpoint Signatures & Responses
software/core/oqm-core-api/src/main/java/.../interfaces/endpoints/** (many files, see diff)
Changed many @PathParam/field types from String to ObjectId; replaced Response return types with domain objects or SearchResult<T>; removed response-builder helpers.
Service Layer API
software/core/oqm-core-api/src/main/java/.../service/mongo/**, MongoObjectService, MongoHistoriedObjectService, MongoFileService, MongoHistoriedFileService, ItemListService, InventoryItemService, InteractingEntityService, HasParentObjService
Removed String-id overloads that delegated to ObjectId-based methods; adjusted method return types (e.g., addOqmDatabase → returns OqmMongoDatabase).
Search & Request Models
software/core/oqm-core-api/src/main/java/.../model/rest/search/**
Converted request/path/query id fields from String to ObjectId; refactored hasValue helpers to static; minor API docs @Parameter additions; removed one factory.
OpenAPI / Schema Enhancements
software/core/oqm-core-api/src/main/java/.../config/OpenApiTweaks.java (new), many model/* and model/rest/* files
Added MicroProfile OpenAPI @Schema annotations across many models, fields, and methods; added OpenApiTweaks OASFilter to override component schemas at runtime/build.
Models & Domain Changes
model/object/*, storage/*, history/*, media/*, file/*
Added schema metadata, adjusted StorageBlock.storedCategories from ListSet (LinkedHashSet), changed JSON serialization for a GridFS helper (@JsonIgnore), and various small model doc/validation tweaks.
Utilities & Tests
software/core/oqm-core-api/src/main/java/.../utils/FileUtils.java (new), tests under src/test/...
Added FileUtils.TIKA constant; updated tests to pass ObjectId directly and adjusted test collections from ArrayListLinkedHashSet; removed tests exercising String-id overloads.
OpenAPI Resources & Config
src/main/resources/openapi.yaml, src/main/resources/application.yaml, src/test/resources/application.yaml
Removed active ObjectId schema override in openapi.yaml, updated API titles/descriptions to "Core API", enabled smallrye remove-unused-schemas, and adjusted mp.openapi scanning rules.
ClientGen & Plugin Changes
clientGen/README.md, clientGen/jaxrs-cxf-client-config.json, software/plugins/**
Added client generation README and config; updated plugin/library dependency coordinates and alert-messenger Quarkus properties and application YAML.
Devservices / Testcontainers Adjustments
libs/core-api-lib-quarkus/deployment/src/main/java/... and related build files
Refactored devservice → devservices config model, added image/kafka config, removed Redpanda container usage, altered container startup/health checks and env propagation.

Sequence Diagram(s)

(omitted)

Estimated Code Review Effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • Development #1168 — modifies clientGen docs/config, strongly related to added clientGen README and config.
  • Development #1173 — earlier CycloneDX BOM Gradle plugin version bumps; related to build/plugin version changes.
  • Development #1166 — touches build/versioning and OpenAPI metadata similar to this PR.

Poem

⚓ Strings cast off, ObjectIds hoisted high,
OpenAPI flags snap smart 'neath the sky,
Quarkus set to a newer gale,
Tests refitted, and helpers prevail,
Shipshape Core API sails—aye, steady as I!

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch development

…radle/software/core/oqm-core-api/development/org.cyclonedx.bom-3.2.3

Bump org.cyclonedx.bom from 3.2.2 to 3.2.3 in /software/core/oqm-core-api
@GregJohnStewart GregJohnStewart marked this pull request as ready for review April 9, 2026 05:51
@GregJohnStewart GregJohnStewart merged commit 2fe30b8 into main Apr 9, 2026
4 of 10 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Apr 13, 2026
1 task
@coderabbitai coderabbitai Bot mentioned this pull request Apr 28, 2026
1 task
@coderabbitai coderabbitai Bot mentioned this pull request May 25, 2026
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant