Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
68b4e45
Plugin - Ext Item Search - Setup beginnings of new world order
GregJohnStewart Sep 2, 2025
5097e27
Merge branch 'development' into dev/899-fr-ext-item-search---rework-i…
GregJohnStewart Apr 20, 2026
0c02226
Plugin - Ext Item Search - Next iteration on rework of search
GregJohnStewart Apr 21, 2026
8a022e6
Plugin - Ext Item Search - Code sync for bug creation
GregJohnStewart Apr 21, 2026
e6e9601
Bump io.freefair.lombok in /software/plugins/external-item-search
dependabot[bot] Apr 21, 2026
4f7d936
Bump org.jsoup:jsoup in /software/plugins/external-item-search
dependabot[bot] Apr 21, 2026
8f0c994
Bump io.freefair.lombok in /software/core/oqm-core-api
dependabot[bot] Apr 21, 2026
70eefcc
Bump com.deque.html.axe-core:playwright
dependabot[bot] Apr 21, 2026
f542243
Bump io.freefair.lombok in /software/plugins/storagotchi
dependabot[bot] Apr 21, 2026
b7b71d0
Plugin - Ext Item Search - Streamlining setup, working
GregJohnStewart Apr 22, 2026
fdc3910
Plugin - Ext Item Search - Adding back in barcode lookup
GregJohnStewart Apr 22, 2026
dcb7aaa
Plugin - Ext Item Search - Adding back in upcitem database
GregJohnStewart Apr 22, 2026
6909f48
Plugin - Ext Item Search - Completed yet another rework of how this n…
GregJohnStewart Apr 24, 2026
ea29d71
Plugin - Ext Item Search - fixes and final form
GregJohnStewart Apr 24, 2026
fe5f717
Plugin - Ext Item Search - swapping to correct metrics library and setup
GregJohnStewart Apr 24, 2026
5aedc8e
Plugin - Ext Item Search - minor cleanup
GregJohnStewart Apr 24, 2026
42cd891
Merge pull request #1212 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Apr 24, 2026
128c057
Merge branch 'development' into dependabot/gradle/software/plugins/st…
GregJohnStewart Apr 24, 2026
d424147
Merge pull request #1214 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Apr 24, 2026
95e1e49
Merge branch 'development' into dependabot/gradle/software/core/oqm-c…
GregJohnStewart Apr 24, 2026
7cd4e66
Merge pull request #1213 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Apr 24, 2026
5e41930
Bump io.freefair.lombok in /software/core/oqm-core-base-station
dependabot[bot] Apr 24, 2026
2660026
Merge branch 'main' into development
GregJohnStewart Apr 24, 2026
91f0085
Merge branch 'development' into dev/899-fr-ext-item-search---rework-i…
GregJohnStewart Apr 24, 2026
d5085d3
Updated ext item search workflow
GregJohnStewart Apr 24, 2026
db45e86
Plugin - Ext Item Search - minor test tweaks
GregJohnStewart Apr 24, 2026
c217f31
Merge branch 'development' into dependabot/gradle/software/plugins/ex…
GregJohnStewart Apr 24, 2026
ad616e7
Merge pull request #1209 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Apr 24, 2026
e64ea17
Merge branch 'development' into dependabot/gradle/software/plugins/ex…
GregJohnStewart Apr 24, 2026
fad8e1c
Merge pull request #1210 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Apr 24, 2026
e498cd0
Merge branch 'development' into dependabot/gradle/software/core/oqm-c…
GregJohnStewart Apr 24, 2026
3995257
Merge pull request #1211 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Apr 24, 2026
a7cdca5
Merge branch 'development' into dev/899-fr-ext-item-search---rework-i…
GregJohnStewart Apr 24, 2026
7259f77
Core - Base Station - Initial rework for new paradigm of ext item lookup
GregJohnStewart Apr 25, 2026
7ff355f
Lib - Core API for Quarkus - Fixed issue searching for files and images
GregJohnStewart Apr 25, 2026
b99cf50
Core - Base Station - initial rework of ext item search results and g…
GregJohnStewart Apr 25, 2026
abcef28
Plugin - Ext Item Search - Tweaks, fixes, cleanup, and organization
GregJohnStewart Apr 25, 2026
4d6d139
Plugin - Ext Item Search - Adding github workflow shield to readme
GregJohnStewart Apr 25, 2026
9205988
Updating dependabot formatting, updating project dev flow docs
GregJohnStewart Apr 25, 2026
037f086
Core - Base Station - Now properly displaying errors, other polish
GregJohnStewart Apr 26, 2026
05b7189
Plugin - Ext Item Search - Polish and added endpoints for available m…
GregJohnStewart Apr 26, 2026
19b01b2
Plugin - Ext Item Search - metrics tweaks
GregJohnStewart Apr 26, 2026
0cb9ee6
Core - Base Station - Fixed overview page
GregJohnStewart Apr 26, 2026
c096f71
Core - Base Station - tweak from review
GregJohnStewart Apr 26, 2026
e5952f9
SNH - Station Captain - fix secret setting in config manager. Fixed c…
GregJohnStewart Apr 26, 2026
ec48474
Core - Base Station - added failed image list
GregJohnStewart Apr 26, 2026
805992d
Core - Base Station - fixed associated links functionality
GregJohnStewart Apr 28, 2026
8b38b9f
Core - Base Station - Polish of ext item search results
GregJohnStewart Apr 28, 2026
f14d58c
Merge pull request #1207 from Epic-Breakfast-Productions/dev/899-fr-e…
GregJohnStewart Apr 28, 2026
1832233
Core - API - quarkus version bump
GregJohnStewart Apr 28, 2026
cd12680
Plugin - Ext Item Search - quarkus version bump
GregJohnStewart Apr 28, 2026
55126d4
Core - Base Station - Bugfix, quarkus version bump
GregJohnStewart Apr 28, 2026
0780098
SNH - Station Captain - fix to the fix of secret setting in config ma…
GregJohnStewart Apr 28, 2026
425031e
Core - Base Station - minor fix from review
GregJohnStewart Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 35 additions & 20 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@

version: 2
updates:
#

###############################################################################
###############################################################################
# Core components
#
###############################################################################
###############################################################################

# Core API
- package-ecosystem: "gradle"
Expand Down Expand Up @@ -48,10 +51,12 @@ updates:
labels:
- "area-dependencies"
- "project-core-baseStation"

#

###############################################################################
###############################################################################
# Libraries
#
###############################################################################
###############################################################################

# Core API Lib Quarkus
- package-ecosystem: "gradle"
Expand All @@ -62,12 +67,16 @@ updates:
day: "tuesday"
labels:
- "area-dependencies"

#

###############################################################################
###############################################################################
# Plugins
#
###############################################################################
###############################################################################

#
# External Item Search
#
- package-ecosystem: "gradle"
directory: "/software/plugins/external-item-search"
target-branch: "development"
Expand All @@ -76,7 +85,21 @@ updates:
day: "tuesday"
labels:
- "area-dependencies"
- "project-plugin-extItemSearch"
-
package-ecosystem: "docker"
directory: "/software/plugins/external-item-search/src/main/docker"
target-branch: "development"
schedule:
interval: "weekly"
day: "tuesday"
labels:
- "area-dependencies"
- "project-plugin-extItemSearch"

#
# Mss Controller
#
- package-ecosystem: "gradle"
directory: "/software/plugins/mss-controller"
target-branch: "development"
Expand All @@ -85,7 +108,10 @@ updates:
day: "tuesday"
labels:
- "area-dependencies"

#
# Storagotchi
#
- package-ecosystem: "gradle"
directory: "/software/plugins/storagotchi"
target-branch: "development"
Expand All @@ -103,15 +129,4 @@ updates:
day: "tuesday"
labels:
- "area-dependencies"
- "project-core-api"

# Demo
# - package-ecosystem: "gradle"
# directory: "/software/plugins/open-qm-plugin-demo"
# target-branch: "dev"
# schedule:
# interval: "weekly"
# labels:
# - "area-dependencies"
# - "project-plugins"

- "project-plugin-storagotchi"
39 changes: 10 additions & 29 deletions .github/workflows/plugin-extItemSearch.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,22 @@
name: CI - Plugin - External Item Search

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ "**" ]
paths:
- "software/plugins/external-item-search/**"
- ".github/workflows/plugin-extItemSearch.yml"
pull_request:
branches: [ "**" ]
paths:
- "software/plugins/external-item-search/**"
- ".github/workflows/plugin-extItemSearch.yml"
workflow_call:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
defaults:
run:
working-directory: "software/plugins/external-item-search/"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel

concurrency:
group: ci-plugin-extItemSearch-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
uses: ./.github/workflows/wf-gradleBuild.yaml
CI-Pipeline:
uses: Epic-Breakfast-Productions/ebp-ci/.github/workflows/quarkus-ci-pipeline.yml@main
with:
path: "software/plugins/external-item-search/"
unitTest:
uses: ./.github/workflows/wf-gradleUnitTest.yaml
with:
path: "software/plugins/external-item-search/"
intTest:
uses: ./.github/workflows/wf-gradleQuarkusIntTest.yaml
strategy:
matrix:
containerBased: [ false ] # TODO:: enable true
with:
path: "software/plugins/external-item-search/"
containerBased: ${{ matrix.containerBased }}


java-version: "25"
run-int-tests: true
container-based-int-tests: true
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ def __init__(

def rereadConfigData(self):
self.configData = self.readFile(self.mainConfigFile)
for file in os.listdir(self.additionalConfigsDir):
for file in sorted(os.listdir(self.additionalConfigsDir)):
if file.endswith(".json"):
curUpdates = self.readFile(self.additionalConfigsDir + "/" + file)
self.configData = ConfigManager.mergeDicts(self.configData, curUpdates)
Expand Down
6 changes: 3 additions & 3 deletions deployment/Single Host/Station-Captain/src/oqm-config.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ def set(args):

if secret:
json = mainCM.setSecretValInFile(
configKeyToSet=args.setSecret[0],
configValToSet=args.setSecret[1],
configFile=args.setSecret[2]
configKeyToSet=configKeyToSet,
configValToSet=configValToSet,
configFile=configFile
)
else:
json = mainCM.setConfigValInFile(
Expand Down
12 changes: 12 additions & 0 deletions docs/development/developmentFlow.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,15 @@ Branches:
- final review into `main`
- `dev/[issue #]-[issue name]`
- where work happens

## Github Project

https://github.com/orgs/Epic-Breakfast-Productions/projects/8

All issues are to be assigned to the OQM github project for tracking purposes. We use the features of the project interface to track issues, assign them to team members, and manage workflows.

## Labels

https://github.com/Epic-Breakfast-Productions/OpenQuarterMaster/labels

Labels help us categorize and organize issues. These should be accurate and applied as relevant.
2 changes: 1 addition & 1 deletion software/core/oqm-core-api/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id 'java'
id 'io.quarkus'
id "io.freefair.lombok" version "9.2.0"
id "io.freefair.lombok" version "9.4.0"
id 'jacoco'
id 'org.cyclonedx.bom' version '3.2.4'
id("org.spdx.sbom") version "0.10.0"
Expand Down
4 changes: 2 additions & 2 deletions software/core/oqm-core-api/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#Gradle properties
quarkusPluginId=io.quarkus
quarkusPluginVersion=3.34.2
quarkusPlatformVersion=3.34.2
quarkusPluginVersion=3.34.6
quarkusPlatformVersion=3.34.6
quarkusPlatformGroupId=io.quarkus
quarkusPlatformArtifactId=quarkus-universe-bom
org.gradle.logging.level=INFO
Expand Down
8 changes: 4 additions & 4 deletions software/core/oqm-core-base-station/build.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
plugins {
id 'java'
id 'io.quarkus'
id "io.freefair.lombok" version "9.2.0"
id "io.freefair.lombok" version "9.4.0"
}

group 'com.ebp.openQuarterMaster'
version '1.15.4'
version '1.15.5-SNAPSHOT'

repositories {
mavenCentral()
Expand All @@ -31,7 +31,7 @@ dependencies {
implementation 'io.quarkus:quarkus-micrometer-opentelemetry'
implementation 'io.quarkus:quarkus-scheduler'

implementation 'tech.epic-breakfast-productions.openquartermaster.lib.core:core-api-lib-quarkus:4.4.5'
implementation 'tech.epic-breakfast-productions.openquartermaster.lib.core:core-api-lib-quarkus:4.4.6-SNAPSHOT'

implementation 'org.apache.commons:commons-io:1.3.2'
implementation 'org.apache.commons:commons-text:1.15.0'
Expand All @@ -49,7 +49,7 @@ dependencies {
testImplementation 'net.datafaker:datafaker:2.5.4'

testImplementation 'com.microsoft.playwright:playwright:1.59.0'
testImplementation 'com.deque.html.axe-core:playwright:4.11.1'
testImplementation 'com.deque.html.axe-core:playwright:4.11.2'
}

java {
Expand Down
4 changes: 2 additions & 2 deletions software/core/oqm-core-base-station/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Gradle properties
quarkusPluginId=io.quarkus
quarkusPluginVersion=3.32.4
quarkusPlatformVersion=3.32.4
quarkusPluginVersion=3.34.6
quarkusPlatformVersion=3.34.6
quarkusPlatformGroupId=io.quarkus.platform
quarkusPlatformArtifactId=quarkus-bom
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
package tech.ebp.oqm.core.baseStation.interfaces.rest.passthrough.plugins.externalItemSearch;

import com.fasterxml.jackson.databind.node.ObjectNode;
import io.quarkus.security.Authenticated;
import io.smallrye.mutiny.Uni;
import jakarta.annotation.security.PermitAll;
import jakarta.enterprise.context.RequestScoped;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.ws.rs.BeanParam;
import jakarta.ws.rs.DefaultValue;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.microprofile.openapi.annotations.parameters.Parameter;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
import org.eclipse.microprofile.openapi.annotations.tags.Tags;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import tech.ebp.oqm.core.baseStation.interfaces.rest.passthrough.PassthroughProvider;
import tech.ebp.oqm.core.baseStation.service.ExternalItemSearchClient;

import java.util.List;

@Slf4j
@Path(PassthroughProvider.PASSTHROUGH_API_PLUGIN_ROOT + "/itemLookup")
@Tags({@Tag(name = "External Item Lookup", description = "Endpoints for searching for items from other places.")})
Expand All @@ -29,44 +35,40 @@ public class ItemLookupRestInterface extends PassthroughProvider {
ExternalItemSearchClient externalItemSearchClient;

@GET
@Path("/providers")
@Path("/search")
@Produces(MediaType.APPLICATION_JSON)
public Uni<Response> allProviderInfo() {
public Uni<Response> search(@BeanParam ItemLookupRequest request) {
return this.handleCall(
this.externalItemSearchClient.allProviderInfo()
this.externalItemSearchClient.search(request)
);
}

@GET
@Path("barcode/{barcode}")
@Produces(MediaType.APPLICATION_JSON)
public Uni<Response> searchBarcode(
@PathParam("barcode") String barcode
) {
return this.handleCall(
this.externalItemSearchClient.searchBarcode(barcode)
);
}

@GET
@Path("webpage-scrape/{webpage}")
@Produces(MediaType.APPLICATION_JSON)
public Uni<Response> scanWebpage(
@PathParam("webpage") String page
) {
return this.handleCall(
this.externalItemSearchClient.scanWebpage(page)
);
}

@GET
@Path("lego/part/{partNo}")
@Produces(MediaType.APPLICATION_JSON)
public Uni<Response> searchLegoPart(
@PathParam("partNo") String partNo
) {
return this.handleCall(
this.externalItemSearchClient.searchLegoPart(partNo)
);
public static class ItemLookupRequest {

@Parameter(description = "The type of lookup to perform. If empty, will perform a text search.")
@QueryParam("lookupMethod")
@DefaultValue("TEXT")
List<String> lookupMethods;

@Parameter(description = "The data source(s) to use to search. If empty, any are used.")
@QueryParam("service")
List<String> services;

@Parameter(
description = "The source(s) to use to search. Distinct from 'services', as some sources can pull from many services. Example, one service might present data from Amazon,"
+ " and other retailers. If empty, will search all available."
)
@QueryParam("source")
List<String> sources;

@NonNull
@NotNull
@NotBlank
@QueryParam("q")
String search;

@QueryParam("keepNotFound")
@DefaultValue("false")
boolean keepNotFound;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,11 @@ public Uni<Response> overview() throws MalformedURLException {
"unitCategoryMap", this.coreApiClient.unitGetAll(this.getBearerHeaderStr()),
"extSearchEnabled", Uni.createFrom().item(extSearchEnabled),
"allProviderInfo", extSearchEnabled ?
QuarkusRestClientBuilder.newBuilder()
.baseUrl(new URL(this.extSearchUrl))
.build(ExternalItemSearchClient.class).allProviderInfo()
: Uni.createFrom().nullItem()
QuarkusRestClientBuilder.newBuilder()
.baseUrl(new URL(this.extSearchUrl))
.build(ExternalItemSearchClient.class).allProviderInfo()
: Uni.createFrom().nullItem()

)
);
}
Expand Down
Loading
Loading