Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
37 changes: 37 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -279,3 +279,40 @@ updates:
arcadedb-docker:
patterns:
- "arcadedata/arcadedb"

# ── Feature Store ──────────────────────────────────────────────────────────
- package-ecosystem: "maven"
directory: "/feature-store/java"
schedule:
interval: weekly
day: "sunday"
open-pull-requests-limit: 20

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The open-pull-requests-limit for Maven is set to 20, which is higher than the limit of 10 for other package ecosystems in this file. While this is not necessarily an issue, it's worth ensuring this is intentional. A higher limit can sometimes lead to a large number of open PRs from dependabot, which might be overwhelming to manage. If the number of Maven dependencies is large and they are updated frequently, this might be justified.

groups:
arcadedb:
patterns:
- "com.arcadedb:*"
maven-plugins:
patterns:
- "org.apache.maven.plugins:*"

- package-ecosystem: "npm"
directory: "/feature-store/js"
schedule:
interval: weekly
day: "sunday"
open-pull-requests-limit: 10
groups:
node-pg:
patterns:
- "pg"

- package-ecosystem: "docker-compose"
directory: "/feature-store"
schedule:
interval: weekly
day: "sunday"
open-pull-requests-limit: 10
groups:
arcadedb-docker:
patterns:
- "arcadedata/arcadedb"
97 changes: 97 additions & 0 deletions .github/workflows/feature-store.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Feature Store CI

on:
push:
paths:
- feature-store/**
- .github/workflows/feature-store.yml
pull_request:
paths:
- feature-store/**
- .github/workflows/feature-store.yml

jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: read
strategy:
fail-fast: false
matrix:
runner: [curl, java, js]

env:
ARCADEDB_URL: http://localhost:2480
ARCADEDB_USER: root
ARCADEDB_PASS: arcadedb

steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 1

- name: Set up Java
if: matrix.runner == 'java'
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
java-version: '21'
distribution: 'temurin'

- name: Cache Maven repository
if: matrix.runner == 'java'
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-feature-store-${{ hashFiles('feature-store/java/pom.xml') }}
restore-keys: ${{ runner.os }}-m2-feature-store-

- name: Set up Node.js
if: matrix.runner == 'js'
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: '22'

- name: Cache npm
if: matrix.runner == 'js'
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ~/.npm
key: ${{ runner.os }}-npm-feature-store-${{ hashFiles('feature-store/js/package.json') }}
restore-keys: ${{ runner.os }}-npm-feature-store-

- name: Install JS dependencies
if: matrix.runner == 'js'
working-directory: feature-store/js
run: npm install

- name: Start ArcadeDB
working-directory: feature-store
run: docker compose up -d

- name: Setup database
working-directory: feature-store
run: ./setup.sh

- name: Run curl queries
if: matrix.runner == 'curl'
working-directory: feature-store
run: ./queries/queries.sh

- name: Build and run Java
if: matrix.runner == 'java'
working-directory: feature-store/java
run: |
mvn package --no-transfer-progress
java -jar target/feature-store.jar

- name: Run JavaScript queries
if: matrix.runner == 'js'
working-directory: feature-store/js
run: node feature-store.js

- name: Teardown
if: always()
working-directory: feature-store
run: docker compose down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ A collection of self-contained projects demonstrating [ArcadeDB](https://arcaded
| `fraud-detection/` | `FraudDetection` | 26.3.1 | 21 | HTTP API (`arcadedb-network`) |
| `supply-chain/` | `SupplyChain` | 26.3.1 | 21 | HTTP API (`arcadedb-network`) + PostgreSQL (`pg`) |
| `iam/` | `IAM` | 26.3.1 | 21 | HTTP API (`arcadedb-network`) + PostgreSQL (`psycopg`) |
| `feature-store/` | `FeatureStore` | 26.3.2 | 21 | HTTP API (`arcadedb-network`) + PostgreSQL (`pg`) |

## Directory Structure (per use case)

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ and runnable demos via both `curl` and a Java program.
| [supply-chain](./supply-chain/) | Supply chain management with multi-tier visibility | Graph traversal, Vector similarity, Time-series, PostgreSQL protocol, JavaScript |
| [iam](./iam/) | Identity & Access Management | Graph traversal, Time-series, Vector similarity, PostgreSQL protocol, Python |
| [customer-360](./customer-360/) | Unified customer view with identity resolution and churn prediction | Graph traversal, Documents, Vectors, Full-text search, OpenCypher |
| [feature-store](./feature-store/) | Unified ML feature store for fraud, recommendations, and maintenance | Graph traversal, Vector similarity, Time-series, PostgreSQL protocol, JavaScript |

## Structure

Expand Down
Loading
Loading