Skip to content

Commit 9f5d928

Browse files
sattvikcrishabhpoddarKShivenduporcellusanku255
authored
feat: MFA (#162)
* changes storage layer to take json instead of config file path * adds new functions skeleton * adds checks for conflicting configs for user pools * changes to tests to make them pass * adds skeleton for multi tenancy functions * fixes bug * adds connection pool ID function * changes as per interface change * adds one test for multi tenany storage layer * adds more tests * fixes bugs * adds more tests and changes config parsing to prioritise connection uri input * fixes a few config parsing bugs * adds more tests * modifies testing to clear multiple user pools after each test * makes initlogging idempotent * fixes all tests * fixes tests * adds more placeholder functions * removes use of quiteprogramexception * small change * adds new function skeleton * adds more skeleton functions * updates exception import * adds skeleton for tenantIdentifier for emailpassword and useridmapping recipes * changes to incorporate tenantIndetifier for key value storage * changes to session receipe to add tenantIdentifier * introduces the concept of appIdentifier vs tenantIdentifier * fixes test compilation issues * changes as per plugin change * modifes user roles functions to add tenantidentifier and appidentifiers * modifies emailpassword functions * changes to a few functions * adds appidentifier to email verfication * makes tests pass * adds tenant identifier to third party * adds tenantidentifier to passwordless * function name changes * fix: Multitenancy schema updates (#59) * fix: few schema changes and multitenancy impl * fix: handling pkey constraint * fix: pr comments * fix: pr comments * fix: pr comments * fix: pr comments * fix: typo and logical mistakes * fix: null handling and new exceptions * fix: refactored provider SQLs * fix: refactored select all * fix: fix for concurrent test * fix: cleanup * fix: cleanup and handle null boolean * fix: Multitenant emailpassword recipe changes (#60) * fix: emailpassword schema * fix: ep, ev and pless schema * fix: prepare for ep review * fix: app_id_to_user_id table * fix: ep recipe impl * fix: removed todo * fix: updated as per plugin interface * fix: fixed index * fix: pr comments * fix: removed backward compatibility * fix: minor fix (#62) * fix: Multitenant schema changes (#64) * fix: ev and pless impl * fix: ev fixes * fix: pless and tp changes * fix: revert delete user * fix: pless impl * fix: cleanup and fixed deleteUser * fix: simplified queries and added fkey checks in ep * fix: fkey checks for pless * fix: fkey checks for thirdparty * fix: fkey checks for emailverification * fix: fixed test * fix: updated to join query for ep * fix: updated join queries * fix: constraints * fix: test fix * fix: pr comments * fix: to support PR comments on core (#65) * fix: from core pr comments * fix: updated tenant identifier conversion * fix: Multitenant userroles (#69) * fix: user roles impl * fix: handling fkey * fix: transaction fix * fix: transaction fix * fix: Multitenant usermetadata (#70) * fix: user roles impl * fix: handling fkey * fix: usermetadata impl * fix: transaction fix * fix: transaction fix * fix: ep storage (#71) * fix: thirdparty storage (#74) * fix: Multitenant thirdparty changes for update email (#75) * fix: thirdparty storage * fix: thirdparty changes * fix: pr comments * fix: Multitenant emailverification storage (#76) * fix: thirdparty storage * fix: emailverification storage * fix: tokens tenant specific (#77) * fix: Multitenant session (#78) * fix: session changes * fix: session changes * fix: session changes * comment modification * fix: Multitenant session changes (#80) * fix: key value changes * fix: pr comments * fix: adding tenant or app not found exceptions * Multi tenant merging with latest (#79) * merges with latest * fixes test compilation issue * increases threshold of deadlock retries * adds simple test for loading 50 storages * many fixes * fix: jwt changes (#82) * fix: Multitenant General Queries (#84) * fix: updated general queries * fix: fixed queries * fix: Multitenant dashboard (#85) * fix: updated general queries * fix: fixed queries * fix: dashboard queries * fix: added fk contstraint * fix: fixed index * fix: Multitenant totp (#86) * fix: totp queries * fix: handling fk * fix: pr comment * merges (#87) * adds new config * fix: multitenancy changes (#88) * fix: multitenancy changes * fix: multitenant queries * fix: add userid to tenant * fix: saas test * fix: remove DeletionInProgressException * fix: pr comments * fix: recipe id in appid_to_userid table * fix: pr comment * fix: query fixes * fix: fixed validation * fix: added comments * fix: Misc changes (#89) * fix: session expiry index * fix: active users * feat: Introduce MFA recipe in postgresql plugin * chores: Mention MFA recipe support in CHANGELOG * fix: Tenantid in userobjects (#90) * fix: adding tenant ids to user objects * fix: create user type * fix: test fixes * fix: transaction * fix: refactored ep and tp * fix: refactor pless * fix: pr comment * fix: pr comment * fix: test fix (#92) * fix: Startup log (#93) * fix: removed log to console * fix: tenant id in loadConfig * fix: Userpool test (#94) * fix: userpool test * fix: added test with server restart * fix: delete non auth user (#95) * fix: Delete nonauth user (#96) * fix: nonAuthRecipeuserData to take tenantIdentifier * fix: pr comments * feat: Add active user stat queries for MFA * fix: Update user_id length in mfa_user_factors table * Set factor_id VARCHAR length to 16 * fix: config validation (#97) * fix: config per tenant, per app annotations (#98) * feat: Consider multitenancy when getting MFA stats * test: Fix mistake in MFA table create query * feat: Add query to delete user from a tenant * fix: config annotation (#102) * fix: config annotation * fix: removed comments * Update src/main/java/io/supertokens/storage/postgresql/config/PostgreSQLConfig.java * Update src/main/java/io/supertokens/storage/postgresql/config/PostgreSQLConfig.java --------- Co-authored-by: Rishabh Poddar <[email protected]> * fix: added setLogLevels (#103) * fix: merge issue * Overload deleteMfaInfoForUser and set factor column size to 64 * fix: fkey names (#104) * fix: fixed fkey names on user tables * fix: catching fkey constraints * fix: added comments * fix: Postgres migration (#105) * fix: fixed fkey names on user tables * fix: catching fkey constraints * fix: added comments * fix: changelog * fix: changelog * fix: pr comment * fix: Fkey indexes (#109) * fix: fkey indexes * fix: fixes * fix: active users storage stuff * fix: active users storage stuff * fix: fixed index name * fix: updated migration script * fix: Revert irrelevant changes * refactor: Replace TotpNotEnabledError with UnknownUserIdTotpError (#133) * refactor: Replace totp not enabled error with unknown device error * Replace TotpNotEnabledError with UnknownUserIdTotpError * chores: Update CHANGELOG * fix: build * fix: totp queries --------- Co-authored-by: Sattvik Chakravarthy <[email protected]> * fix: queries * fix: changes as per plugin interface (#163) * fix: mfa cleanup (#164) * fix: mfa cleanup * fix: pr comments * Mfa multitenancy (#167) * fix: mfa multitenancy queries * fix: mfa cleanup * fix: mfa config storage * fix: mfa * fix: tests * fix: default values * fix: pr comments * fix: pr comments * fix: minor fix * fix: pr comments * fix: set * fix: pr comment * fix: constraint * fix: created_at in totp devices (#169) * fix: created_at in totp devices * fix: add createdat to totp device * fix: mfa stats (#170) * fix: mfa stats * fix: pr comments * fix: index name * fix: mfa changes (#177) * feat: make refresh update the signing key type of sessions (#180) * fix: Merge latest (#199) * fix: remove db password from logs (#181) * fix: remove db password from logs * fix: Update version * fix: mask db password * fix: Add tests * fix: Add more tests * fix: PR changes * fix: PR changes * fix: Connection pool issue (#182) * fix: test connection pool * fix: changelog * fix: test for downtime during connection pool change * fix: assert that there should be down time * fix: cleanup * adding dev-v5.0.7 tag to this commit to ensure building * fix: cicd tests (#185) * fix: logging test (#187) * adding dev-v5.0.7 tag to this commit to ensure building * fix: flaky test (#188) * adding dev-v5.0.7 tag to this commit to ensure building * fix: adds idle timeout and minimum idle configs (#184) * fix: adds idle timeout and minimum idle configs * fix: protected props * fix: changelog * fix: test protected config * adding dev-v5.0.7 tag to this commit to ensure building * fix: cicd (#189) * fix: cicd * fix: test * adding dev-v5.0.7 tag to this commit to ensure building * fixes tests * adding dev-v5.0.7 tag to this commit to ensure building * fix: vulnerability fix (#192) * fix: vulnerability fix * fix: vulnerability fix * adding dev-v5.0.8 tag to this commit to ensure building * fix: dependencies (#195) * adding dev-v5.0.8 tag to this commit to ensure building * fix: version update (#198) * adding dev-v5.0.8 tag to this commit to ensure building --------- Co-authored-by: Ankit Tiwari <[email protected]> Co-authored-by: rishabhpoddar <[email protected]> * merge latest (#204) * fix: remove db password from logs (#181) * fix: remove db password from logs * fix: Update version * fix: mask db password * fix: Add tests * fix: Add more tests * fix: PR changes * fix: PR changes * fix: Connection pool issue (#182) * fix: test connection pool * fix: changelog * fix: test for downtime during connection pool change * fix: assert that there should be down time * fix: cleanup * adding dev-v5.0.7 tag to this commit to ensure building * fix: cicd tests (#185) * fix: logging test (#187) * adding dev-v5.0.7 tag to this commit to ensure building * fix: flaky test (#188) * adding dev-v5.0.7 tag to this commit to ensure building * fix: adds idle timeout and minimum idle configs (#184) * fix: adds idle timeout and minimum idle configs * fix: protected props * fix: changelog * fix: test protected config * adding dev-v5.0.7 tag to this commit to ensure building * fix: cicd (#189) * fix: cicd * fix: test * adding dev-v5.0.7 tag to this commit to ensure building * fixes tests * adding dev-v5.0.7 tag to this commit to ensure building * fix: vulnerability fix (#192) * fix: vulnerability fix * fix: vulnerability fix * adding dev-v5.0.8 tag to this commit to ensure building * fix: dependencies (#195) * adding dev-v5.0.8 tag to this commit to ensure building * fix: version update (#198) * adding dev-v5.0.8 tag to this commit to ensure building * fix: fixes storage handling for non-auth recipes (#203) * fix: tests * fix: user role table constraint * fix: pr comments * fix: according to updated interface * fix: user roles * fix: version and changelog * fix: plugin interface version * adding dev-v6.0.0 tag to this commit to ensure building --------- Co-authored-by: Ankit Tiwari <[email protected]> Co-authored-by: rishabhpoddar <[email protected]> * fix: One million users test (#196) * test: one million users first version * fix: user data * fix: update test * fix: update cicd * fix: wip * fix: measurements * fix: test * fix: adding memory tests * fix: memory limit * fix: pass appId to getUserIdMappingForSuperTokensIds * fix: one million users test * fix: versions * fix: versions * Remaining changes (#206) * fix: pass appId to getUserIdMappingForSuperTokensIds * fix: one million users test * fix: versions * fix: versions * fix: one million users --------- Co-authored-by: rishabhpoddar <[email protected]> Co-authored-by: KShivendu <[email protected]> Co-authored-by: KShivendu <[email protected]> Co-authored-by: Mihály Lengyel <[email protected]> Co-authored-by: Ankit Tiwari <[email protected]>
1 parent 7a9cc50 commit 9f5d928

30 files changed

+1664
-162
lines changed

.circleci/config.yml

Lines changed: 102 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,88 @@ jobs:
7777
name: running tests
7878
command: (cd .circleci/ && ./doTests.sh)
7979
- slack/status
80+
test-onemillionusers:
81+
docker:
82+
- image: rishabhpoddar/supertokens_postgresql_plugin_test
83+
resource_class: large
84+
steps:
85+
- add_ssh_keys:
86+
fingerprints:
87+
- "14:68:18:82:73:00:e4:fc:9e:f3:6f:ce:1d:5c:6d:c4"
88+
- checkout
89+
- run:
90+
name: update postgresql max_connections
91+
command: |
92+
sed -i 's/^#*\s*max_connections\s*=.*/max_connections = 10000/' /etc/postgresql/9.5/main/postgresql.conf
93+
- run:
94+
name: starting postgresql
95+
command: |
96+
(cd / && ./runPostgreSQL.sh)
97+
- run:
98+
name: create databases
99+
command: |
100+
psql -c "create database st0;"
101+
psql -c "create database st1;"
102+
psql -c "create database st2;"
103+
psql -c "create database st3;"
104+
psql -c "create database st4;"
105+
psql -c "create database st5;"
106+
psql -c "create database st6;"
107+
psql -c "create database st7;"
108+
psql -c "create database st8;"
109+
psql -c "create database st9;"
110+
psql -c "create database st10;"
111+
psql -c "create database st11;"
112+
psql -c "create database st12;"
113+
psql -c "create database st13;"
114+
psql -c "create database st14;"
115+
psql -c "create database st15;"
116+
psql -c "create database st16;"
117+
psql -c "create database st17;"
118+
psql -c "create database st18;"
119+
psql -c "create database st19;"
120+
psql -c "create database st20;"
121+
psql -c "create database st21;"
122+
psql -c "create database st22;"
123+
psql -c "create database st23;"
124+
psql -c "create database st24;"
125+
psql -c "create database st25;"
126+
psql -c "create database st26;"
127+
psql -c "create database st27;"
128+
psql -c "create database st28;"
129+
psql -c "create database st29;"
130+
psql -c "create database st30;"
131+
psql -c "create database st31;"
132+
psql -c "create database st32;"
133+
psql -c "create database st33;"
134+
psql -c "create database st34;"
135+
psql -c "create database st35;"
136+
psql -c "create database st36;"
137+
psql -c "create database st37;"
138+
psql -c "create database st38;"
139+
psql -c "create database st39;"
140+
psql -c "create database st40;"
141+
psql -c "create database st41;"
142+
psql -c "create database st42;"
143+
psql -c "create database st43;"
144+
psql -c "create database st44;"
145+
psql -c "create database st45;"
146+
psql -c "create database st46;"
147+
psql -c "create database st47;"
148+
psql -c "create database st48;"
149+
psql -c "create database st49;"
150+
psql -c "create database st50;"
151+
- run:
152+
name: running tests
153+
command: (cd .circleci/ && ./doOneMillionUsersTests.sh)
154+
- slack/status
155+
mark-passed:
156+
docker:
157+
- image: rishabhpoddar/supertokens_postgresql_plugin_test
158+
steps:
159+
- checkout
160+
- run: (cd .circleci && ./markPassed.sh)
161+
- slack/status
80162

81163
workflows:
82164
version: 2
@@ -89,4 +171,23 @@ workflows:
89171
tags:
90172
only: /dev-v[0-9]+(\.[0-9]+)*/
91173
branches:
92-
ignore: /.*/
174+
ignore: /.*/
175+
- test-onemillionusers:
176+
context:
177+
- slack-notification
178+
filters:
179+
tags:
180+
only: /dev-v[0-9]+(\.[0-9]+)*/
181+
branches:
182+
ignore: /.*/
183+
- mark-passed:
184+
context:
185+
- slack-notification
186+
filters:
187+
tags:
188+
only: /dev-v[0-9]+(\.[0-9]+)*/
189+
branches:
190+
ignore: /.*/
191+
requires:
192+
- test
193+
- test-onemillionusers
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
function cleanup {
2+
if test -f "pluginInterfaceExactVersionsOutput"; then
3+
rm pluginInterfaceExactVersionsOutput
4+
fi
5+
}
6+
7+
trap cleanup EXIT
8+
cleanup
9+
10+
pluginInterfaceJson=`cat ../pluginInterfaceSupported.json`
11+
pluginInterfaceLength=`echo $pluginInterfaceJson | jq ".versions | length"`
12+
pluginInterfaceArray=`echo $pluginInterfaceJson | jq ".versions"`
13+
echo "got plugin interface relations"
14+
15+
./getPluginInterfaceExactVersions.sh $pluginInterfaceLength "$pluginInterfaceArray"
16+
17+
if [[ $? -ne 0 ]]
18+
then
19+
echo "all plugin interfaces found... failed. exiting!"
20+
exit 1
21+
else
22+
echo "all plugin interfaces found..."
23+
fi
24+
25+
# get plugin version
26+
pluginVersion=`cat ../build.gradle | grep -e "version =" -e "version="`
27+
while IFS='"' read -ra ADDR; do
28+
counter=0
29+
for i in "${ADDR[@]}"; do
30+
if [ $counter == 1 ]
31+
then
32+
pluginVersion=$i
33+
fi
34+
counter=$(($counter+1))
35+
done
36+
done <<< "$pluginVersion"
37+
38+
responseStatus=`curl -s -o /dev/null -w "%{http_code}" -X PUT \
39+
https://api.supertokens.io/0/plugin \
40+
-H 'Content-Type: application/json' \
41+
-H 'api-version: 0' \
42+
-d "{
43+
\"password\": \"$SUPERTOKENS_API_KEY\",
44+
\"planType\":\"FREE\",
45+
\"version\":\"$pluginVersion\",
46+
\"pluginInterfaces\": $pluginInterfaceArray,
47+
\"name\": \"postgresql\"
48+
}"`
49+
if [ $responseStatus -ne "200" ]
50+
then
51+
echo "failed plugin PUT API status code: $responseStatus. Exiting!"
52+
exit 1
53+
fi
54+
55+
someTestsRan=false
56+
while read -u 10 line
57+
do
58+
if [[ $line = "" ]]; then
59+
continue
60+
fi
61+
i=0
62+
currTag=`echo $line | jq .tag`
63+
currTag=`echo $currTag | tr -d '"'`
64+
65+
currVersion=`echo $line | jq .version`
66+
currVersion=`echo $currVersion | tr -d '"'`
67+
piX=$(cut -d'.' -f1 <<<"$currVersion")
68+
piY=$(cut -d'.' -f2 <<<"$currVersion")
69+
piVersion="$piX.$piY"
70+
71+
someTestsRan=true
72+
73+
response=`curl -s -X GET \
74+
"https://api.supertokens.io/0/plugin-interface/dependency/core/latest?password=$SUPERTOKENS_API_KEY&planType=FREE&mode=DEV&version=$piVersion" \
75+
-H 'api-version: 0'`
76+
if [[ `echo $response | jq .core` == "null" ]]
77+
then
78+
echo "fetching latest X.Y version for core given plugin-interface X.Y version: $piVersion gave response: $response"
79+
exit 1
80+
fi
81+
coreVersionX2=$(echo $response | jq .core | tr -d '"')
82+
83+
response=`curl -s -X GET \
84+
"https://api.supertokens.io/0/core/latest?password=$SUPERTOKENS_API_KEY&planType=FREE&mode=DEV&version=$coreVersionX2" \
85+
-H 'api-version: 0'`
86+
if [[ `echo $response | jq .tag` == "null" ]]
87+
then
88+
echo "fetching latest X.Y.Z version for core X.Y version: $coreVersionX2 gave response: $response"
89+
exit 1
90+
fi
91+
coreVersionTag=$(echo $response | jq .tag | tr -d '"')
92+
93+
cd ../../
94+
git clone [email protected]:supertokens/supertokens-root.git
95+
cd supertokens-root
96+
97+
update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-15.0.1/bin/java" 2
98+
update-alternatives --install "/usr/bin/javac" "javac" "/usr/java/jdk-15.0.1/bin/javac" 2
99+
100+
pluginX=$(cut -d'.' -f1 <<<"$pluginVersion")
101+
pluginY=$(cut -d'.' -f2 <<<"$pluginVersion")
102+
echo -e "core,$coreVersionX2\nplugin-interface,$piVersion\npostgresql-plugin,$pluginX.$pluginY" > modules.txt
103+
./loadModules
104+
cd supertokens-core
105+
git checkout $coreVersionTag
106+
cd ../supertokens-plugin-interface
107+
git checkout $currTag
108+
cd ../supertokens-postgresql-plugin
109+
git checkout dev-v$pluginVersion
110+
cd ../
111+
echo $SUPERTOKENS_API_KEY > apiPassword
112+
export ONE_MILLION_USERS_TEST=1
113+
./utils/setupTestEnv --cicd
114+
./gradlew :supertokens-postgresql-plugin:test --tests io.supertokens.storage.postgresql.test.OneMillionUsersTest
115+
116+
if [[ $? -ne 0 ]]
117+
then
118+
cat logs/*
119+
cd ../project/
120+
echo "test failed... exiting!"
121+
exit 1
122+
fi
123+
cd ../
124+
rm -rf supertokens-root
125+
cd project/.circleci
126+
done 10<pluginInterfaceExactVersionsOutput
127+
128+
if [[ $someTestsRan = "true" ]]
129+
then
130+
echo "all tests ran"
131+
exit 0
132+
else
133+
echo "no test ran"
134+
exit 1
135+
fi

.circleci/doTests.sh

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -125,23 +125,8 @@ done 10<pluginInterfaceExactVersionsOutput
125125

126126
if [[ $someTestsRan = "true" ]]
127127
then
128-
echo "calling /core PATCH to make testing passed"
129-
responseStatus=`curl -s -o /dev/null -w "%{http_code}" -X PATCH \
130-
https://api.supertokens.io/0/plugin \
131-
-H 'Content-Type: application/json' \
132-
-H 'api-version: 0' \
133-
-d "{
134-
\"password\": \"$SUPERTOKENS_API_KEY\",
135-
\"planType\":\"FREE\",
136-
\"name\":\"postgresql\",
137-
\"version\":\"$pluginVersion\",
138-
\"testPassed\": true
139-
}"`
140-
if [ $responseStatus -ne "200" ]
141-
then
142-
echo "patch api failed"
143-
exit 1
144-
fi
128+
echo "all tests ran"
129+
exit 0
145130
else
146131
echo "no test ran"
147132
exit 1

.circleci/markPassed.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
pluginVersion=`cat ../build.gradle | grep -e "version =" -e "version="`
2+
while IFS='"' read -ra ADDR; do
3+
counter=0
4+
for i in "${ADDR[@]}"; do
5+
if [ $counter == 1 ]
6+
then
7+
pluginVersion=$i
8+
fi
9+
counter=$(($counter+1))
10+
done
11+
done <<< "$pluginVersion"
12+
13+
echo "calling /core PATCH to make testing passed"
14+
responseStatus=`curl -s -o /dev/null -w "%{http_code}" -X PATCH \
15+
https://api.supertokens.io/0/plugin \
16+
-H 'Content-Type: application/json' \
17+
-H 'api-version: 0' \
18+
-d "{
19+
\"password\": \"$SUPERTOKENS_API_KEY\",
20+
\"planType\":\"FREE\",
21+
\"name\":\"postgresql\",
22+
\"version\":\"$pluginVersion\",
23+
\"testPassed\": true
24+
}"`
25+
if [ $responseStatus -ne "200" ]
26+
then
27+
echo "patch api failed"
28+
exit 1
29+
fi

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
- [ ] Issue this PR against the latest non released version branch.
2222
- To know which one it is, run find the latest released tag (`git tag`) in the format `vX.Y.Z`, and then find the latest branch (`git branch --all`) whose `X.Y` is greater than the latest released tag.
2323
- If no such branch exists, then create one from the latest released branch.
24-
24+
- [ ] When adding new recipes, ensure that its performance is being measured in the `OneMillionUsersTest`
2525
## Remaining TODOs for this PR
2626
- [ ] Item1
2727
- [ ] Item2

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## [Unreleased]
99

10+
## [7.0.0] - 2024-03-13
11+
12+
- Replace `TotpNotEnabledError` with `UnknownUserIdTotpError`.
13+
- Support for MFA recipe
14+
- Adds a new `useStaticKey` param to `updateSessionInfo_Transaction`
15+
- This enables smooth switching between `useDynamicAccessTokenSigningKey` settings by allowing refresh calls to
16+
change the signing key type of a session
17+
1018
## [6.0.0] - 2024-03-05
1119

1220
- Implements `deleteAllUserRoleAssociationsForRole`
@@ -151,7 +159,6 @@ CREATE INDEX IF NOT EXISTS app_id_to_user_id_primary_user_id_index ON app_id_to_
151159
```
152160
4. Run the new instance(s) of the core (version 7.0.0)
153161

154-
155162
## [4.0.2]
156163

157164
- Fixes null pointer issue when user belongs to no tenant.

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ plugins {
22
id 'java-library'
33
}
44

5-
version = "6.0.0"
5+
version = "7.0.0"
66

77
repositories {
88
mavenCentral()

jar/postgresql-plugin-7.0.0.jar

213 KB
Binary file not shown.

pluginInterfaceSupported.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"_comment": "contains a list of plugin interfaces branch names that this core supports",
33
"versions": [
4-
"5.0"
4+
"6.0"
55
]
66
}

0 commit comments

Comments
 (0)