Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
515162d
feat: add ssh ui
fabiovincenzi Mar 31, 2025
1400d9b
feat: support direct querying of AD group membership via LDAP
kriswest Apr 10, 2025
f552624
test: don't clean-up test-repo as cypress tests rely on it
kriswest Apr 11, 2025
cb3d110
fix(auth): remove jwt data from config and disable by default
jescalada Apr 13, 2025
fdaeb6b
feat(auth): add role mapping and assignment on jwt claims
jescalada Apr 13, 2025
5e1440e
test(auth): add test for getJwks helper
jescalada Apr 13, 2025
24cba4d
chore(auth): move jwt util functions into own file for testing
jescalada Apr 13, 2025
dad5beb
test(auth): add test for validateJwt helper function
jescalada Apr 13, 2025
407cb85
test(auth): add test for assignRoles helper function
jescalada Apr 13, 2025
420be8d
test(auth): add tests for jwtAuthHandler
jescalada Apr 13, 2025
5bdcd69
chore: add missing jwtConfig parameter (optional)
jescalada Apr 16, 2025
8decdea
Merge remote-tracking branch 'origin/main' into jwt-claims-role-mapping
jescalada Apr 16, 2025
aee4b4f
fix: fix failing tests
jescalada Apr 16, 2025
583616a
fix: remove unneeded oidc config params and values
jescalada Apr 16, 2025
f31bc6d
fix: fix linter and test issues
jescalada Apr 16, 2025
412b209
fix: e2e test fail due to route refactor (admin -> dashboard)
jescalada Apr 16, 2025
336e51d
fix: e2e test fail (login required)
jescalada Apr 16, 2025
189ec0c
Merge branch 'main' into 909-ldap-user-group-confirmation
kriswest Apr 16, 2025
9f1cb27
Merge branch 'G-Research:main' into ssh-ui
fabiovincenzi Apr 25, 2025
04e9292
Merge branch 'main' into 909-ldap-user-group-confirmation
kriswest May 7, 2025
f7e6d75
docs: regenerate reference doc
kriswest May 7, 2025
5c048f4
Merge remote-tracking branch 'upstream/909-ldap-user-group-confirmati…
kriswest May 7, 2025
3f18c26
Merge branch 'main' into 909-ldap-user-group-confirmation
kriswest May 7, 2025
043c259
chore: remove change to checkCommitMessages
kriswest May 7, 2025
86e74ec
Update src/proxy/processors/push-action/checkCommitMessages.ts
kriswest May 8, 2025
84b4534
Merge branch 'main' into 909-ldap-user-group-confirmation
kriswest May 9, 2025
e815bfc
Update src/service/passport/ldaphelper.js
kriswest May 13, 2025
f514691
feat: adds ssh support for git operations
dcoric Apr 28, 2025
584d487
Merge remote-tracking branch 'denis/denis-coric/ssh-flow' into ssh-ui
fabiovincenzi May 21, 2025
b7b965d
Merge branch 'main' into 909-ldap-user-group-confirmation
kriswest May 22, 2025
5114e99
chore: regenerate config ref doc from schema
kriswest May 22, 2025
36f9ee6
Merge remote-tracking branch 'upstream/909-ldap-user-group-confirmati…
kriswest May 22, 2025
5e4216e
test: add preliminary test setup for AD auth
jescalada May 23, 2025
9f752da
test: ad auth admin
jescalada May 23, 2025
c495d36
test: add more ad tests
jescalada May 23, 2025
7a4ffee
test: add preliminary oidc auth tests
jescalada May 23, 2025
f3755f2
fix: ad auth method undefined bug
jescalada May 23, 2025
bd94aba
test: temporarily remove oidc tests
jescalada May 23, 2025
88fd895
chore: fix linter
jescalada May 23, 2025
09d3b05
test: revert changes to test script
jescalada May 23, 2025
e1f1d75
test: temporarily skip problematic `PluginLoader` tests
jescalada May 23, 2025
82a4725
test: add validGitRequest tests to testProxyRoute, rename for auto ex…
jescalada May 23, 2025
1810e8d
fix: validGitRequest missing header bugs
jescalada May 23, 2025
9fedbed
test: add tests for stripGitHubFromGitPath
jescalada May 23, 2025
3532b42
chore: rename skipped tests
jescalada May 23, 2025
d860360
updated README and documentation site with info on community meeting
sam-holmes2 May 23, 2025
9233e23
Merge branch 'main' into fix/community-meeting-links
sam-holmes2 May 23, 2025
eb414fd
test: set up route filter middleware dependencies
jescalada May 24, 2025
783256d
test: add rejection test cases
jescalada May 24, 2025
79c1ec9
test: add valid request tests (valid/invalid repo)
jescalada May 24, 2025
daf4cc7
fix: remove transfer-encoding header
jescalada May 24, 2025
4cc15cf
chore: fix stub to increase coverage
jescalada May 24, 2025
9a0276e
test: improve coverage for service/routes/auth and fix bug
jescalada May 26, 2025
e6f0cfe
chore: remove unused auth endpoints and function
jescalada May 26, 2025
ecb83cc
chore: fix linter issue
jescalada May 26, 2025
c5e622e
feat: add getPublicKey in database
fabiovincenzi May 28, 2025
e474edf
feat: add endpoints for retrieving SHA fingerprint and delete SHA by …
fabiovincenzi May 28, 2025
c017a78
feat: use endpoints in SSH UI
fabiovincenzi May 28, 2025
0eca75b
feat: add tab for SSH in CodeActionButton
fabiovincenzi May 28, 2025
7f62e3b
feat: add icons
fabiovincenzi May 28, 2025
ee16489
Merge branch 'ssh-ui' of https://github.com/fabiovincenzi/git-proxy i…
fabiovincenzi May 28, 2025
1703530
Merge branch 'main' into 909-ldap-user-group-confirmation
kriswest Jun 3, 2025
65c508d
fix: resolve conflict with 'enable-multiple-auth-methods'
kriswest Jun 3, 2025
6231db0
chore: regenerate schema doc
kriswest Jun 3, 2025
2d205d5
fix: fetch ssh port to create the correct url
fabiovincenzi Jun 4, 2025
04ab644
Merge branch 'main' into 909-ldap-user-group-confirmation
kriswest Jun 4, 2025
e5fe90d
fix: adjust config schema to account for changes to auth config
kriswest Jun 4, 2025
70af4ee
fix: adjust config schema for changes to auth config from main
kriswest Jun 4, 2025
ec0acbd
Merge branch '909-ldap-user-group-confirmation' of https://natwest.gi…
kriswest Jun 4, 2025
95363db
fix: lowercase openidconnect in config schema to match code
kriswest Jun 4, 2025
ed6a4ff
docs: add auth config descriptions to config schema and regenerate re…
kriswest Jun 4, 2025
2ff9802
Merge branch 'main' into improve-auth-test-coverage
JamieSlome Jun 5, 2025
f21a472
Merge branch 'main' into improve-auth-test-coverage
JamieSlome Jun 5, 2025
adfdb96
Merge branch 'main' into 909-ldap-user-group-confirmation
JamieSlome Jun 5, 2025
9c7df3a
feat(experimental): fall back to local spdx data and filter deprecated
06kellyjac Jun 10, 2025
709441d
Merge branch 'main' into 909-ldap-user-group-confirmation
kriswest Jun 10, 2025
27cfb07
chore: update package.json scripts
jescalada Jun 13, 2025
e77aec2
Merge remote-tracking branch 'origin/main' into jwt-claims-role-mapping
jescalada Jun 13, 2025
b808b61
chore: improve oidc error handling
jescalada Jun 13, 2025
dccb6c4
chore: improve /repo error handling
jescalada Jun 13, 2025
7b8df5f
test: add extra unit test for invalid login
jescalada Jun 15, 2025
3d420a2
docs: add authentication doc page
jescalada Jun 15, 2025
31cba39
docs: fix broken links
jescalada Jun 15, 2025
25f0065
fix: make error handling more descriptive and catch JWT config error
jescalada Jun 15, 2025
21582e2
chore: merge ssh integration
fabiovincenzi Jun 16, 2025
6a3146d
Merge branch 'main' into 909-ldap-user-group-confirmation
JamieSlome Jun 16, 2025
a80b65b
chore: remove unused dependancy
fabiovincenzi Jun 16, 2025
9d96614
Merge pull request #972 from kriswest/909-ldap-user-group-confirmation
JamieSlome Jun 16, 2025
65617cd
Merge branch 'main' into jwt-claims-role-mapping
JamieSlome Jun 16, 2025
6471e11
fix(deps): update npm - li-cli - experimental/li-cli/package.json
renovate[bot] Jun 16, 2025
caff54b
Merge pull request #1016 from finos/renovate/li-cli-manager
JamieSlome Jun 17, 2025
fee11da
chore(deps): update dependency @finos/git-proxy to ^1.17.2 - git-prox…
renovate[bot] Jun 17, 2025
33d4d4f
Merge branch 'main' into li_cli_offline
JamieSlome Jun 17, 2025
8f279a2
Merge pull request #1054 from finos/renovate/git-proxy-plugin-samples…
JamieSlome Jun 17, 2025
a91f147
chore(deps): update github-actions - workflows - .github/workflows/ci…
renovate[bot] Jun 17, 2025
65becc0
Merge pull request #1055 from finos/renovate/workflows-manager
JamieSlome Jun 17, 2025
699f31f
Merge branch 'main' into jwt-claims-role-mapping
JamieSlome Jun 17, 2025
ac7802f
fix(deps): update dependency axios to ^1.10.0 - git-proxy-cli - packa…
renovate[bot] Jun 17, 2025
34afffa
Merge pull request #1056 from finos/renovate/git-proxy-cli-manager
JamieSlome Jun 18, 2025
b31ab01
Merge branch 'main' into li_cli_offline
JamieSlome Jun 18, 2025
03eec40
Merge pull request #1048 from 06kellyjac/li_cli_offline
JamieSlome Jun 18, 2025
6e09d78
fix(deps): update npm - website - website/package.json
renovate[bot] Jun 18, 2025
d13686d
Merge pull request #1057 from finos/renovate/website-manager
JamieSlome Jun 18, 2025
9f554b7
Merge branch 'main' into jwt-claims-role-mapping
jescalada Jun 18, 2025
ac5851d
Merge branch 'main' into improve-auth-test-coverage
jescalada Jun 19, 2025
4d742f6
chore: improve AD error messages and fix failing test
jescalada Jun 19, 2025
2167c70
chore: update Node version to 20 in CI
jescalada Jun 19, 2025
bf99e9b
test: remove .skip for plugin loader tests
jescalada Jun 19, 2025
c14c9d9
chore: remove unused test file
jescalada Jun 19, 2025
544936b
Merge remote-tracking branch 'origin/main' into improve-plugin-test-c…
jescalada Jun 23, 2025
3383f9a
updated incorrect time and added some more emojis
sam-holmes2 Jun 24, 2025
b5901d0
refactor(proxy): remove bodyParser.raw from app setup
fabiovincenzi Jun 25, 2025
e5322fd
feat(proxy): introduce teeAndValidate middleware for pack POSTs
fabiovincenzi Jun 25, 2025
ad6f30b
test(proxy): add unit tests for teeAndValidate and isPackPost
fabiovincenzi Jun 25, 2025
29e7d2a
chore(deps): remove unused body-parser dependency
fabiovincenzi Jun 25, 2025
74400b5
fix(lint): disable no useless escape
fabiovincenzi Jun 25, 2025
dc208cd
fix: allow for auth with activedirectory again
06kellyjac Jun 25, 2025
6793fae
fix: make loadFromGit non-interactive
06kellyjac Jun 25, 2025
accf223
test: move valid url missing git repo test under our control
06kellyjac Jun 25, 2025
06a5d32
Merge pull request #977 from jescalada/jwt-claims-role-mapping
JamieSlome Jun 29, 2025
e519950
chore: bump by minor to v1.18.0
JamieSlome Jun 29, 2025
1d30ab5
Merge pull request #1066 from finos/release-1.18.0
JamieSlome Jun 29, 2025
5f04f33
Merge branch 'main' into improve-auth-test-coverage
JamieSlome Jun 29, 2025
60bfa32
Merge pull request #1024 from jescalada/improve-auth-test-coverage
JamieSlome Jun 29, 2025
0f7a10d
chore(deps): update dependency @jest/globals to v30 - license-invento…
renovate[bot] Jun 29, 2025
96c4754
Merge pull request #1058 from finos/renovate/license-inventory-major-…
JamieSlome Jun 29, 2025
c6ed94c
Merge branch 'main' into improve-plugin-test-coverage
JamieSlome Jun 29, 2025
e7ee0d6
Merge pull request #1025 from jescalada/improve-plugin-test-coverage
JamieSlome Jun 29, 2025
189b5ee
chore: resolve merge conflicts
fabiovincenzi Jun 30, 2025
49a11b7
Merge branch 'main' into ssh-ui
fabiovincenzi Jun 30, 2025
770b7d1
Merge branch 'main' into upgrade-node-to-20.19
JamieSlome Jun 30, 2025
41dbc46
Merge pull request #1059 from jescalada/upgrade-node-to-20.19
JamieSlome Jun 30, 2025
e85b3bd
Merge branch 'main' into fix_multi_auth
JamieSlome Jul 1, 2025
cd1dd89
Merge pull request #1061 from 06kellyjac/fix_multi_auth
JamieSlome Jul 1, 2025
66a0900
chore: bump by patch to v1.18.1
JamieSlome Jul 1, 2025
cfc069c
Merge pull request #1069 from finos/release-1.18.1
JamieSlome Jul 1, 2025
8711aa5
fix: correct typing for ConfigLoader env
06kellyjac Jul 1, 2025
3354838
chore: add tsc for just server and add to CI
06kellyjac Jul 1, 2025
04b0f10
Merge pull request #1070 from 06kellyjac/fix_type_issue
JamieSlome Jul 1, 2025
fc13ea2
chore: bump by patch to v1.18.2
JamieSlome Jul 1, 2025
1730c93
Merge pull request #1071 from finos/release-1.18.2
JamieSlome Jul 1, 2025
91cc5f4
chore(deps): update dependency @types/node to ^22.15.34 - li-cli - ex…
renovate[bot] Jul 1, 2025
0ade87d
Merge pull request #1067 from finos/renovate/li-cli-manager
JamieSlome Jul 1, 2025
538b00b
chore(deps): update dependency @finos/git-proxy to ^1.18.0 - git-prox…
renovate[bot] Jul 1, 2025
24b56dc
Merge pull request #1073 from finos/renovate/git-proxy-plugin-samples…
JamieSlome Jul 1, 2025
4c72002
chore(deps): update github-actions - workflows - .github/workflows/sc…
renovate[bot] Jul 1, 2025
a65f0fd
Merge pull request #1072 from finos/renovate/workflows-manager
JamieSlome Jul 1, 2025
715df87
chore(deps): update dependency @finos/git-proxy to ^1.18.2 - git-prox…
renovate[bot] Jul 1, 2025
96ce9d6
fix(deps): update dependency eslint to ^9.30.0 - website - website/pa…
renovate[bot] Jul 1, 2025
5b9b3f4
Merge pull request #1074 from finos/renovate/git-proxy-plugin-samples…
JamieSlome Jul 1, 2025
2d8691f
Merge branch 'main' into renovate/website-manager
JamieSlome Jul 1, 2025
e6c0d5f
Merge branch 'main' into ssh-ui
JamieSlome Jul 1, 2025
9fe41fb
Merge pull request #1075 from finos/renovate/website-manager
JamieSlome Jul 1, 2025
a9603a6
chore(deps): update dependency lint-staged to v16 - license-inventory…
renovate[bot] Jul 1, 2025
ae9f79c
Merge pull request #1076 from finos/renovate/license-inventory-major-…
JamieSlome Jul 1, 2025
1a58e46
chore(deps): update dependency node to v22 - workflows - .github/work…
renovate[bot] Jul 1, 2025
2b81d59
chore(deps): update dependency sinon to v20 - - package.json
renovate[bot] Jul 1, 2025
e262c0e
Merge pull request #1077 from finos/renovate/workflows-major-22-githu…
JamieSlome Jul 2, 2025
d2e9322
Merge branch 'main' into renovate/major-20-npm
JamieSlome Jul 2, 2025
35a946b
Merge pull request #1078 from finos/renovate/major-20-npm
JamieSlome Jul 2, 2025
43a7072
fix(deps): update dependency eslint to ^9.30.1 - website - website/pa…
renovate[bot] Jul 2, 2025
d7f3074
Merge pull request #1079 from finos/renovate/website-manager
JamieSlome Jul 2, 2025
431d0ef
fix(deps): update npm - li-cli - experimental/li-cli/package.json
renovate[bot] Jul 2, 2025
8c35edd
Merge pull request #1080 from finos/renovate/li-cli-manager
JamieSlome Jul 2, 2025
c1325c6
chore(deps): update dependency sinon to v21 - - package.json
renovate[bot] Jul 2, 2025
eee8858
Merge pull request #1081 from finos/renovate/major-21-npm
JamieSlome Jul 2, 2025
975df0a
chore(deps): update grafana/grafana docker tag to v12 - license-inven…
renovate[bot] Jul 2, 2025
a0bb2ef
Merge pull request #1082 from finos/renovate/license-inventory-major-…
JamieSlome Jul 2, 2025
9293a41
fix(deps): update dependency body-parser to v2 - - package.json
renovate[bot] Jul 2, 2025
daee018
Merge branch 'main' into clone-fix
fabiovincenzi Jul 2, 2025
75fb0e6
Merge pull request #1084 from finos/renovate/major-2-npm
JamieSlome Jul 3, 2025
0fad3a4
feat: mongo connection string & cookie secret from env vars
coopernetes Jul 2, 2025
a5eb9f2
Merge branch 'main' into clone-fix
fabiovincenzi Jul 4, 2025
90f6806
fix: remove .only in tests
fabiovincenzi Jul 4, 2025
57c65cb
refactor: remove unused dependancy
fabiovincenzi Jul 4, 2025
735c634
fix: use git-proxy repo in repo cypress test
fabiovincenzi Jul 4, 2025
37d9464
fix: fix blocked request test
fabiovincenzi Jul 4, 2025
f96a8c4
Merge pull request #1060 from fabiovincenzi/clone-fix
JamieSlome Jul 4, 2025
a007613
Merge branch 'main' into feat/mongo-env
JamieSlome Jul 4, 2025
53fded7
Merge pull request #1086 from RBC/feat/mongo-env
JamieSlome Jul 4, 2025
4421930
fix(deps): update dependency zod to ^3.25.73 - li-cli - experimental/…
renovate[bot] Jul 4, 2025
29d0e34
Merge pull request #1085 from finos/renovate/li-cli-manager
JamieSlome Jul 4, 2025
a036e92
Merge branch 'main' into fix/community-meeting-links
JamieSlome Jul 4, 2025
b7b67a5
Merge pull request #1026 from sam-holmes2/fix/community-meeting-links
JamieSlome Jul 4, 2025
eb5eecb
Merge branch 'main' into ssh-ui
fabiovincenzi Jul 7, 2025
ce5a80a
feat: add allert for bad ssh key
fabiovincenzi Jul 9, 2025
c3227e3
feat: store date and name of keys
fabiovincenzi Jul 9, 2025
55702c1
refactor: export into services api calls
fabiovincenzi Jul 9, 2025
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
12 changes: 9 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ jobs:

strategy:
matrix:
node-version: [18.x]
node-version: [20.x]
mongodb-version: [4.4]

steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
with:
egress-policy: audit

Expand All @@ -45,6 +45,12 @@ jobs:
- name: Install dependencies
run: npm i

# for now only check the types of the server
# tsconfig isn't quite set up right to respect what vite accepts
# for the frontend code
- name: Check Types (Server)
run: npm run check-types:server

- name: Test
id: test
run: |
Expand Down Expand Up @@ -77,7 +83,7 @@ jobs:
path: build

- name: Run cypress test
uses: cypress-io/github-action@be1bab96b388bbd9ce3887e397d373c8557e15af # v6.9.2
uses: cypress-io/github-action@6c143abc292aa835d827652c2ea025d098311070 # v6.10.1
with:
start: npm start &
wait-on: "http://localhost:3000"
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:

steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2
with:
egress-policy: audit

Expand All @@ -60,7 +60,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3
uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -74,7 +74,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3
uses: github/codeql-action/autobuild@181d5eefc20863364f96762470ba6f862bdef56b # v3

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
Expand All @@ -87,6 +87,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3
uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3
with:
category: "/language:${{matrix.language}}"
2 changes: 1 addition & 1 deletion .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2
with:
egress-policy: audit

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/experimental-inventory-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ jobs:

strategy:
matrix:
node-version: [18.x]
node-version: [20.x]
mongodb-version: [4.4]

steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
with:
egress-policy: audit

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/experimental-inventory-cli-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
with:
egress-policy: audit

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/experimental-inventory-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
with:
egress-policy: audit

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ name: Code Cleanliness

on: [pull_request]

env: # environment variables (available in any part of the action)
NODE_VERSION: 18
env:
NODE_VERSION: 20

permissions:
contents: read
Expand All @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps: # list of steps
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2
with:
egress-policy: audit

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
with:
egress-policy: audit

- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
# Setup .npmrc file to publish to npm
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '20.x'
node-version: '22.x'
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm run build
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
with:
egress-policy: audit

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
# - uses: actions/checkout@8459bc0 # v4
# - uses: actions/setup-node@c2ac33f # v4, Setup .npmrc file to publish to npm
# with:
# node-version: '18.x'
# node-version: '20.x'
# registry-url: 'https://registry.npmjs.org'
# - run: npm ci
# - run: npm publish --access=public
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/sample-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
with:
egress-policy: audit

- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
# Setup .npmrc file to publish to npm
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '20.x'
node-version: '22.x'
registry-url: 'https://registry.npmjs.org'
- name: publish sample package
run: npm install --include peer && npm publish --access=public
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:

steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
with:
egress-policy: audit

Expand All @@ -42,7 +42,7 @@ jobs:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
with:
results_file: results.sarif
results_format: sarif
Expand Down Expand Up @@ -72,6 +72,6 @@ jobs:

# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
uses: github/codeql-action/upload-sarif@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
with:
sarif_file: results.sarif
4 changes: 2 additions & 2 deletions .github/workflows/unused-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2
with:
egress-policy: audit

Expand All @@ -18,7 +18,7 @@ jobs:
- name: 'Setup Node.js'
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '20.x'
node-version: '22.x'
- name: 'Run depcheck'
run: |
npx depcheck --skip-missing --ignores="tsx,@babel/*,@commitlint/*,eslint,eslint-*,husky,mocha,ts-mocha,ts-node,concurrently,nyc,prettier,typescript,tsconfig-paths,vite-tsconfig-paths"
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ Drop a note, ask a question or just say hello in our [community Slack channel](h

If you can't access Slack, you can also [subscribe to our mailing list](mailto:git-proxy+subscribe@lists.finos.org).

Join our [fortnightly Zoom meeting](https://zoom.us/j/97235277537?pwd=aDJsaE8zcDJpYW1vZHJmSTJ0RXNZUT09) on Monday, 11AM EST (odd week numbers). Send an e-mail to [help@finos.org](mailto:help@finos.org) to get a calendar invitation.
🤝 Join our [fortnightly Zoom meeting](https://zoom-lfx.platform.linuxfoundation.org/meeting/95849833904?password=99413314-d03a-4b1c-b682-1ede2c399595) on Monday, 4PM BST (odd week numbers).
🌍 [Convert to your local time](https://www.timeanddate.com/worldclock)
📅 [Click here](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MTRvbzM0NG01dWNvNGc4OGJjNWphM2ZtaTZfMjAyNTA2MDJUMTUwMDAwWiBzYW0uaG9sbWVzQGNvbnRyb2wtcGxhbmUuaW8&tmsrc=sam.holmes%40control-plane.io&scp=ALL) for the recurring Google Calendar meeting invite. Alternatively, send an e-mail to [help@finos.org](https://zoom-lfx.platform.linuxfoundation.org/meeting/95849833904?password=99413314-d03a-4b1c-b682-1ede2c399595#:~:text=Need-,an,-invite%3F) to get a calendar invitation.

Otherwise, if you have a deeper query or require more support, please [raise an issue](https://github.com/finos/git-proxy/issues).
125 changes: 118 additions & 7 deletions config.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,32 @@
"sessionMaxAgeHours": { "type": "number" },
"api": {
"description": "Third party APIs",
"type": "object"
"type": "object",
"properties": {
"ls": {
"type": "object",
"description": "Configuration used in conjunction with ActiveDirectory auth, which relates to a REST API used to check user group membership, as opposed to direct querying via LDAP.<br />If this configuration is set direct querying of group membership via LDAP will be disabled.",
"properties": {
"userInADGroup": {
"type": "string",
"description": "URL template for a GET request that confirms a user's membership of a specific group. Should respond with a non-empty 200 status if the user is a member of the group, an empty response or non-200 status indicates that the user is not a group member. If set, this URL will be queried and direct queries via LDAP will be disabled. The template should contain the following string placeholders, which will be replaced to produce the final URL:<ul><li>\"&lt;domain&gt;\": AD domain,</li><li>\"&lt;name&gt;\": The group name to check membership of.</li><li>\"&lt;id&gt;\": The username to check group membership for.</li></ul>",
"examples": [
"https://somedomain.com/some/path/checkUserGroups?domain=<domain>&name=<name>&id=<id>"
]
}
}
},
"github": {
"type": "object",
"properties": {
"baseUrl": {
"type": "string",
"format": "uri",
"examples": ["https://api.github.com"]
}
}
}
}
},
"commitConfig": {
"description": "Enforce rules and patterns on commits including e-mail and message",
Expand Down Expand Up @@ -199,12 +224,98 @@
},
"authentication": {
"type": "object",
"properties": {
"type": { "type": "string" },
"enabled": { "type": "boolean" },
"options": { "type": "object" }
},
"required": ["type", "enabled"]
"description": "Configuration for an authentication source",
"oneOf": [
{
"title": "Local Auth Config",
"description": "Configuration for the use of the local database as the authentication source.",
"properties": {
"type": { "type": "string", "const": "local" },
"enabled": { "type": "boolean" }
},
"required": ["type", "enabled"]
},
{
"title": "Active Directory Auth Config",
"description": "Configuration for Active Directory authentication.",
"properties": {
"type": { "type": "string", "const": "ActiveDirectory" },
"enabled": { "type": "boolean" },
"adminGroup": {
"type": "string",
"description": "Group that indicates that a user is an admin"
},
"userGroup": {
"type": "string",
"description": "Group that indicates that a user should be able to login to the Git Proxy UI and can work as a reviewer"
},
"domain": { "type": "string", "description": "Active Directory domain" },
"adConfig": {
"type": "object",
"description": "Additional Active Directory configuration supporting LDAP connection which can be used to confirm group membership. For the full set of available options see the activedirectory 2 NPM module docs at https://www.npmjs.com/package/activedirectory2#activedirectoryoptions <br /><br />Please note that if the Third Party APIs config `api.ls.userInADGroup` is set then the REST API it represents is used in preference to direct querying of group memebership via LDAP.",
"properties": {
"url": {
"type": "string",
"description": "Active Directory server to connect to, e.g. `ldap://ad.example.com`."
},
"baseDN": {
"type": "string",
"description": "The root DN from which all searches will be performed, e.g. `dc=example,dc=com`."
},
"username": {
"type": "string",
"description": "An account name capable of performing the operations desired."
},
"password": {
"type": "string",
"description": "Password for the given `username`."
}
},
"required": ["url", "baseDN", "username", "password"]
}
},
"required": ["type", "enabled", "adminGroup", "userGroup", "domain"]
},
{
"title": "Open ID Connect Auth Config",
"description": "Configuration for Open ID Connect authentication.",
"properties": {
"type": { "type": "string", "const": "openidconnect" },
"enabled": { "type": "boolean" },
"oidcConfig": {
"type": "object",
"description": "Additional OIDC configuration.",
"properties": {
"issuer": { "type": "string" },
"clientID": { "type": "string" },
"clientSecret": { "type": "string" },
"callbackURL": { "type": "string" },
"scope": { "type": "string" }
},
"required": ["issuer", "clientID", "clientSecret", "callbackURL", "scope"]
}
},
"required": ["type", "enabled", "oidcConfig"]
},
{
"title": "JWT Auth Config",
"description": "Configuration for JWT authentication.",
"properties": {
"type": { "type": "string", "const": "jwt" },
"enabled": { "type": "boolean" },
"jwtConfig": {
"type": "object",
"description": "Additional JWT configuration.",
"properties": {
"clientID": { "type": "string" },
"authorityURL": { "type": "string" }
},
"required": ["clientID", "authorityURL"]
}
},
"required": ["type", "enabled", "jwtConfig"]
}
]
},
"routeAuthRule": {
"type": "object",
Expand Down
10 changes: 10 additions & 0 deletions cypress/e2e/login.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,16 @@ describe('Login page', () => {
cy.url().should('include', '/dashboard/repo');
})

it('should show an error snackbar on invalid login', () => {
cy.get('[data-test="username"]').type('wronguser');
cy.get('[data-test="password"]').type('wrongpass');
cy.get('[data-test="login"]').click();

cy.get('.MuiSnackbarContent-message')
.should('be.visible')
.and('contain', 'You entered an invalid username or password...');
});

describe('OIDC login button', () => {
it('should exist', () => {
cy.get('[data-test="oidc-login"]').should('exist');
Expand Down
Loading
Loading