Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
4933f77
chore: sync master back to develop after v2.2.0 release
janosbabik Apr 29, 2026
c0d878f
build(deps-dev): bump eslint-plugin-jest from 29.15.1 to 29.15.2
dependabot[bot] May 5, 2026
1dd5f65
Merge pull request #675 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] May 5, 2026
c972a78
build(deps): bump axios from 1.15.0 to 1.15.2
dependabot[bot] May 5, 2026
a9db280
Merge pull request #678 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] May 5, 2026
5daf495
feat: sync proposals, experiments and samples to SciCat from UOS
Junjiequan May 22, 2026
81944f2
build(deps): bump qs from 6.15.0 to 6.15.2
dependabot[bot] May 23, 2026
65318e6
Merge pull request #682 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] May 23, 2026
6bd9285
build(deps-dev): bump lint-staged from 16.4.0 to 17.0.5
dependabot[bot] May 23, 2026
000d534
feat(oneidentity): add VISIT_UPDATED flow for access sync
yoganandaness May 22, 2026
3a0fd9c
fix: apply buffer days to system access ValidUntil on update (same as…
Copilot May 26, 2026
e71e430
fix: update axios to 1.15.2 to address security vulnerabilities
Copilot May 26, 2026
c528579
fix: address review comments - fix updateEntity return type and rever…
Copilot May 26, 2026
58cf248
merge: resolve conflicts with origin/develop
Copilot May 26, 2026
9a80d14
Validate system access exists before updating site access in One Iden…
Copilot May 26, 2026
fa174e7
fix: remove unnecessary toString conversion for visitId in access han…
yoganandaness May 26, 2026
e2b3758
refactor: replace createPersonWantsOrg and updatePersonWantsOrg with …
yoganandaness May 26, 2026
4263c65
fix: mock Date.now for system access update and use it in upsertPerso…
yoganandaness May 26, 2026
a324bec
fix: use proposalId for permission check (#684)
Junjiequan May 26, 2026
ad5eadc
Merge branch 'develop' into feat-oim-sync-retry
janosbabik May 26, 2026
fe851de
fix: update getProposal graphQl query (#685)
Junjiequan May 27, 2026
aee4f05
Merge branch 'develop' into feat-oim-sync-retry
yoganandaness May 27, 2026
e045c07
Merge branch 'develop' into dependabot-npm_and_yarn-lint-staged-17.0.4
yoganandaness May 27, 2026
3f181e5
Merge pull request #679 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] May 27, 2026
bb55416
Merge branch 'develop' into feat-oim-sync-retry
yoganandaness May 28, 2026
55661d0
Merge pull request #681 from UserOfficeProject/feat-oim-sync-retry
yoganandaness May 28, 2026
7dd9e1c
fix: remove shortCode from UOStatus type (#686)
Junjiequan May 29, 2026
db29bf5
build(deps): bump axios from 1.15.2 to 1.16.0
dependabot[bot] May 29, 2026
5b15301
Merge pull request #687 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] May 29, 2026
75cde66
build(deps-dev): bump ts-jest from 29.4.6 to 29.4.11
dependabot[bot] Jun 3, 2026
da0d5e2
Merge pull request #688 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 3, 2026
dc11b00
build(deps-dev): bump @typescript-eslint/eslint-plugin
dependabot[bot] Jun 3, 2026
dee1617
Merge pull request #689 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 3, 2026
4b70a36
build(deps-dev): bump jest from 30.3.0 to 30.4.2
dependabot[bot] Jun 8, 2026
740e712
Merge pull request #692 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 8, 2026
73ad87a
build(deps-dev): bump eslint-plugin-prettier from 5.5.5 to 5.5.6
dependabot[bot] Jun 8, 2026
abe67a9
Merge pull request #691 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 8, 2026
1d58aaa
feat: add EXPERIMENT_ESF_SUBMITTED for experiment even type (#690)
Junjiequan Jun 9, 2026
0a8882f
build(deps): bump envalid from 8.1.1 to 8.2.0
dependabot[bot] Jun 15, 2026
4585ac7
Merge pull request #695 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 15, 2026
5b77082
build(deps): bump form-data from 4.0.5 to 4.0.6
dependabot[bot] Jun 15, 2026
1a9d888
Merge pull request #696 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 15, 2026
be78072
build(deps-dev): bump @eslint/compat from 2.0.5 to 2.1.0
dependabot[bot] Jun 15, 2026
5bb5482
Merge pull request #694 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 15, 2026
7c15797
build(deps): bump axios from 1.16.0 to 1.18.1
dependabot[bot] Jun 22, 2026
1e1c4f5
Merge pull request #697 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 22, 2026
27b6cd2
build(deps-dev): bump @typescript-eslint/parser from 8.60.1 to 8.62.1
dependabot[bot] Jun 29, 2026
3ee3577
Merge pull request #700 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 29, 2026
ee32a5d
build(deps-dev): bump @typescript-eslint/parser from 8.62.1 to 8.63.0
dependabot[bot] Jul 6, 2026
21cb051
Merge pull request #701 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jul 6, 2026
70e470b
build(deps-dev): bump @typescript-eslint/eslint-plugin
dependabot[bot] Jul 13, 2026
70b86cb
Merge pull request #702 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jul 13, 2026
9a382eb
build(deps): bump dotenv from 17.3.1 to 17.4.2
dependabot[bot] Jul 20, 2026
a383a63
Merge pull request #705 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jul 20, 2026
1c74059
feat(queue): add event type to log messages in QueueConsumer (#707)
jekabs-karklins Jul 30, 2026
faa70b0
feat: add affiliation to visitors and PI (#709)
jekabs-karklins Aug 7, 2026
b85e77c
fix(validateProposalMessage): ensure submitted status is a boolean (#…
janosbabik Aug 10, 2026
0a0b045
fix: Fix startup error handling and correct the ExperimentCreationQue…
janosbabik Aug 11, 2026
cf4823c
fix: Await upsert operations in Experiment and Proposal consumers (#712)
janosbabik Aug 17, 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
9 changes: 6 additions & 3 deletions .env.tests
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@ KAFKA_PASSWORD=test
KAFKA_TOPIC=TestTopic

SCICAT_BASE_URL=http://localhost/some/api
SCICAT_LOGIN_ENDPOINT=/login
SCICAT_USERNAME=user
SCICAT_PASSWORD=pass
SCICAT_JWT=eyJhbGciOiJIUzI1NiIsInR5
SCICAT_PROPOSAL_TRIGGERING_STATUSES="SCHEDULING, ALLOCATED"
SCICAT_EXPERIMENT_TRIGGERING_STATUSES="ACTIVE"

USER_OFFICE_GRAPHQL_URL=http://localhost:8080
USER_OFFICE_JWT=some-token

SYNAPSE_SERVER_URL=https://server-scichat
SYNAPSE_SERVER_NAME=serverName
Expand All @@ -23,6 +25,7 @@ SYNAPSE_OAUTH_ISSUER=SAMPLE_ISSUER

USER_OFFICE_CORE_EXCHANGE_NAME=user_office_backend.fanout
PROPOSAL_CREATION_QUEUE_NAME=connector.proposal_creation.queue
EXPERIMENT_CREATION_QUEUE_NAME=connector.experiment_creation.queue
CHATROOM_CREATION_QUEUE_NAME=consumer.chatroom_creation.queue
FOLDER_CREATION_QUEUE_NAME=connector.proposals_folders_creation.queue
VISA_QUEUE_NAME=dummy
Expand Down
109 changes: 84 additions & 25 deletions .github/workflows/build-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,91 @@ on:
- develop
- staging

permissions:
contents: read

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.runner }}
permissions:
contents: read
packages: write

# Build each platform on a native runner instead of emulating arm64 with
# QEMU, which crashes intermittently during npm ci (see
# https://github.com/tonistiigi/binfmt/issues/215).
strategy:
fail-fast: false
matrix:
include:
- platform: linux/amd64
runner: ubuntu-latest
- platform: linux/arm64
runner: ubuntu-24.04-arm

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Prepare platform pair
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> "$GITHUB_ENV"

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push by digest
id: build
uses: docker/build-push-action@v7
with:
context: .
platforms: ${{ matrix.platform }}
outputs: type=image,name=ghcr.io/userofficeproject/connector,push-by-digest=true,name-canonical=true,push=true

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Export digest
run: |
mkdir -p "${{ runner.temp }}/digests"
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1

merge:
runs-on: ubuntu-latest
needs: build
permissions:
contents: read
packages: write

steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand All @@ -33,32 +100,24 @@ jobs:
- name: Extract branch name
id: extract_branch
uses: swapActions/get-branch-name@v1

- name: Create image tags
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: ghcr.io/userofficeproject/connector
flavor: latest=true # adds :latest tag to outputs.tags
tags: | # adds :<sha> tag to outputs.tags
type=sha,format=long,prefix=
type=raw,value=${{ steps.extract_branch.outputs.branch }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
docker buildx imagetools create \
$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf 'ghcr.io/userofficeproject/connector@sha256:%s ' *)

- name: Trigger pipeline
if: ${{ steps.extract_branch.outputs.branch == 'staging' }} # Only trigger on staging branch
uses: swapActions/trigger-swap-deployment@v1
with:
repository: ${{ github.event.repository.name }}
environment: ${{ steps.extract_branch.outputs.branch }}
gh-trigger-url: ${{ secrets.GITLAB_TRIGGER_URL }}
gh-token: ${{ secrets.GITLAB_TRIGGER_TOKEN }}
image-tag: ${{ github.sha }}
- name: Inspect image
run: |
docker buildx imagetools inspect ghcr.io/userofficeproject/connector:${{ steps.meta.outputs.version }}
12 changes: 6 additions & 6 deletions .github/workflows/github-tag-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ on:
- master

env:
NODE_VERSION: 18.x
NODE_VERSION: 22.x

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Bump version and push tag
id: tag_version
Expand All @@ -28,20 +28,20 @@ jobs:
body: ${{ steps.tag_version.outputs.changelog }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v7
with:
context: .
platforms: linux/amd64,linux/arm64/v8
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches: [develop, master]

env:
NODE_VERSION: 18.x
NODE_VERSION: 22.x

jobs:
run-linters:
Expand All @@ -14,10 +14,10 @@ jobs:

steps:
- name: Check out Git repository
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: ${{ env.NODE_VERSION }}

Expand Down
102 changes: 88 additions & 14 deletions .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ on:
- staging

env:
NODE_VERSION: 18.x
NODE_VERSION: 22.x

permissions:
contents: read

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
Expand All @@ -19,42 +22,113 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: ${{ env.NODE_VERSION }}

- run: npm ci
- run: npm test

build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.runner }}
needs: test
permissions:
contents: read
packages: write

# Build each platform on a native runner instead of emulating arm64 with
# QEMU, which crashes intermittently during npm ci (see
# https://github.com/tonistiigi/binfmt/issues/215).
strategy:
fail-fast: false
matrix:
include:
- platform: linux/amd64
runner: ubuntu-latest
- platform: linux/arm64
runner: ubuntu-24.04-arm

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Prepare platform pair
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> "$GITHUB_ENV"

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
# Don't login if dependabot is creating the PR
if: ${{ !startsWith(github.head_ref, 'dependabot') }}
uses: docker/login-action@v2
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
- name: Build and push by digest
id: build
uses: docker/build-push-action@v7
with:
platforms: ${{ matrix.platform }}
outputs: type=image,name=ghcr.io/userofficeproject/connector,push-by-digest=true,name-canonical=true,push=${{ !startsWith(github.head_ref, 'dependabot') }}

- name: Export digest
if: ${{ !startsWith(github.head_ref, 'dependabot') }}
run: |
mkdir -p "${{ runner.temp }}/digests"
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"

- name: Upload digest
if: ${{ !startsWith(github.head_ref, 'dependabot') }}
uses: actions/upload-artifact@v4
with:
platforms: linux/amd64,linux/arm64
push: ${{ !startsWith(github.head_ref, 'dependabot') }}
tags: ghcr.io/userofficeproject/connector:${{ github.head_ref }}
name: digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1

merge:
runs-on: ubuntu-latest
needs: build
# Nothing was pushed for dependabot PRs, so there is nothing to merge.
if: ${{ !startsWith(github.head_ref, 'dependabot') }}
permissions:
contents: read
packages: write

steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
docker buildx imagetools create \
-t ghcr.io/userofficeproject/connector:${{ github.head_ref }} \
$(printf 'ghcr.io/userofficeproject/connector@sha256:%s ' *)

- name: Inspect image
run: |
docker buildx imagetools inspect ghcr.io/userofficeproject/connector:${{ github.head_ref }}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Connector
The connector connects other services through the message queue.
The connector connects other services through the message queue

# Requirements
This service requires node >=22.0.0
Expand All @@ -10,4 +10,4 @@ To be able to start the connector locally you will need to:

1. Install all needed dependencies with `npm install`
2. Copy the missing matrix-js dependency `npm run fix-olm-dependency`
3. Start the application using `npm run start`
3. Start the application using the command `npm run start`
Loading
Loading