Compare commits

...

18 Commits

Author SHA1 Message Date
Girish Ramakrishnan
ebfe474a79 Version 1.5.0 2020-07-02 09:22:54 -07:00
Girish Ramakrishnan
0c3a909ef3 Update synapse to 1.15.2 2020-07-02 08:38:03 -07:00
Girish Ramakrishnan
1d941ef1c2 Fixup postinstall 2020-07-02 08:37:51 -07:00
Girish Ramakrishnan
f9c7799381 Add forumUrl 2020-07-02 08:32:35 -07:00
Girish Ramakrishnan
37e0405972 Version 1.4.0 2020-06-16 08:49:16 -07:00
Girish Ramakrishnan
429683194f Update synapse to 1.15.1 2020-06-16 08:27:47 -07:00
Girish Ramakrishnan
b2bc129d47 Update synapse to 1.15.0
doesn't work: https://github.com/matrix-org/matrix-synapse-ldap3/issues/92
2020-06-11 14:51:10 -07:00
Girish Ramakrishnan
5e74f21865 Version 1.3.0 2020-06-09 22:21:04 -07:00
Girish Ramakrishnan
070d306838 Add non-sso tests 2020-06-09 22:20:42 -07:00
Girish Ramakrishnan
c9f1071363 Enable optional sso 2020-06-09 21:38:27 -07:00
Girish Ramakrishnan
1ccc16fff6 Version 1.2.0 2020-05-29 07:24:02 -07:00
Girish Ramakrishnan
95648914d4 update tests 2020-05-29 07:22:55 -07:00
Girish Ramakrishnan
6af792f9cd Remove optionalSso for now 2020-05-29 07:22:51 -07:00
Girish Ramakrishnan
052a511599 Update synapse to 1.14.0 2020-05-28 12:32:02 -07:00
Girish Ramakrishnan
15e1f7ac1d Add optional sso support
fixes #1
2020-05-23 08:53:27 -07:00
Girish Ramakrishnan
a1177f3455 remove spurious "y" 2020-05-23 08:49:14 -07:00
Girish Ramakrishnan
2cc55a07fa Version 1.1.0 2020-05-19 09:46:33 -07:00
Girish Ramakrishnan
b4c6b21942 Update Synapse to 1.13.0 2020-05-19 09:19:18 -07:00
9 changed files with 195 additions and 70 deletions

View File

@@ -114,3 +114,37 @@
* Use latest base image * Use latest base image
* Update to synapse v1.12.4 * Update to synapse v1.12.4
[1.1.0]
* Update Synapse to 1.13.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.13.0)
* Set Referrer-Policy header to no-referrer on media downloads. (#7009)
* Admin API POST /_synapse/admin/v1/join/<roomIdOrAlias> to join users to a room like auto_join_rooms for creation of users. (#7051)
* Add options to prevent users from changing their profile or associated 3PIDs. (#7096)
* Allow server admins to define and enforce a password policy (MSC2000). (#7118)
* Improve the support for SSO authentication on the login fallback page. (#7152, #7235)
* Always whitelist the login fallback in the SSO configuration if public_baseurl is set. (#7153)
* Admin users are no longer required to be in a room to create an alias for it. (#7191)
* Require admin privileges to enable room encryption by default. This does not affect existing rooms. (#7230)
[1.2.0]
* Update Synapse to 1.14.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.14.0)
[1.3.0]
* Add optional sso support
[1.4.0]
* Update Synapse to 1.15.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.15.0)
* Advertise support for Client-Server API r0.6.0 and remove related unstable feature flags. (#6585)
* Add an option to disable autojoining rooms for guest accounts. (#6637)
* Add admin APIs to allow server admins to manage users' devices. Contributed by @dklimpel. (#7481)
* Add support for generating thumbnails for WebP images. Previously, users would see an empty box instead of preview image. Contributed by @WGH-. (#7586)
* Support the standardized m.login.sso user-interactive authentication flow. (#7630)
[1.5.0]
* Update Synapse to 1.15.2
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.15.2)
* A malicious homeserver could force Synapse to reset the state in a room to a small subset of the correct state. This affects all Synapse deployments which federate with untrusted servers. (96e9afe6)
* HTML pages served via Synapse were vulnerable to clickjacking attacks. This predominantly affects homeservers with single-sign-on enabled, but all server administrators are encouraged to upgrade. (ea26e9a9)

View File

@@ -5,7 +5,7 @@
"description": "file://DESCRIPTION.md", "description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG", "changelog": "file://CHANGELOG",
"tagline": "Secure & decentralized communication", "tagline": "Secure & decentralized communication",
"version": "1.0.0", "version": "1.5.0",
"healthCheckPath": "/", "healthCheckPath": "/",
"httpPort": 8008, "httpPort": 8008,
"memoryLimit": 536870912, "memoryLimit": 536870912,
@@ -19,9 +19,9 @@
"manifestVersion": 2, "manifestVersion": 2,
"website": "https://matrix.org", "website": "https://matrix.org",
"contactEmail": "support@cloudron.io", "contactEmail": "support@cloudron.io",
"icon": "logo.png", "icon": "file://logo.png",
"tags": [ "tags": [
"im", "collaboration", "voip", "videochat", "chat" "im", "collaboration", "voip", "videochat", "chat", "slack"
], ],
"mediaLinks": [ "mediaLinks": [
"https://cloudron-app-screenshots.s3.amazonaws.com/org.matrix.synapse/606cd9d4ccc3bee11a49f91444a2dad8947cbc7c/1.png", "https://cloudron-app-screenshots.s3.amazonaws.com/org.matrix.synapse/606cd9d4ccc3bee11a49f91444a2dad8947cbc7c/1.png",
@@ -30,6 +30,8 @@
], ],
"changelog": "file://CHANGELOG", "changelog": "file://CHANGELOG",
"postInstallMessage": "file://POSTINSTALL.md", "postInstallMessage": "file://POSTINSTALL.md",
"minBoxVersion": "5.1.4", "minBoxVersion": "5.3.0",
"documentationUrl": "https://cloudron.io/documentation/apps/synapse/" "forumUrl": "https://forum.cloudron.io/category/50/matrix-synapse-riot",
"documentationUrl": "https://cloudron.io/documentation/apps/synapse/",
"optionalSso": true
} }

View File

@@ -1,4 +1,4 @@
This app packages Synapse <upstream>1.12.4</upstream>. This app packages Synapse <upstream>1.15.2</upstream>.
**This package only provides the Matrix backend. A variety of clients are available **This package only provides the Matrix backend. A variety of clients are available
[here](https://matrix.org/clients/). Riot is a popular web frontend for Matrix and [here](https://matrix.org/clients/). Riot is a popular web frontend for Matrix and

View File

@@ -4,7 +4,7 @@ RUN mkdir -p /app/pkg
WORKDIR /app/code WORKDIR /app/code
ARG VERSION=v1.12.4 ARG VERSION=v1.15.2
# https://pythonspeed.com/articles/activate-virtualenv-dockerfile/ # https://pythonspeed.com/articles/activate-virtualenv-dockerfile/
RUN virtualenv -p python3 /app/code/env RUN virtualenv -p python3 /app/code/env

View File

@@ -1,8 +1,8 @@
<sso> Account ids are created with the username and the second level domain under which the
This app integrates with the Cloudron User Management. Cloudron users can register app is installed e.g. `@username@domain.com`.
themselves using any client and use Matrix Synapse.
</sso>
**IMPORTANT: See the [docs](https://cloudron.io/documentation/apps/synapse/) on For federation to work, the second level domain has to be configured to serve up the
how to complete setup and start using this app.** `.well-known/domain.com/matrix` URI. See the
[federation docs](https://cloudron.io/documentation/apps/synapse/) on
how to do this.

View File

@@ -31,7 +31,11 @@ if [[ ! -f /app/data/configs/homeserver.yaml ]]; then
yq w -i /app/data/configs/homeserver.yaml auto_join_rooms "[]" yq w -i /app/data/configs/homeserver.yaml auto_join_rooms "[]"
yq w -i /app/data/configs/homeserver.yaml auto_join_rooms\[0\] "#discuss:${server_name}" yq w -i /app/data/configs/homeserver.yaml auto_join_rooms\[0\] "#discuss:${server_name}"
y
if [[ -z "${CLOUDRON_LDAP_SERVER:-}" ]]; then
yq w -i /app/data/configs/homeserver.yaml enable_registration true
yq w -i /app/data/configs/homeserver.yaml password_config.pepper "$(pwgen -1s 12)"
fi
fi fi
echo "==> Configuring synapse" echo "==> Configuring synapse"
@@ -51,12 +55,16 @@ yq w -i /app/data/configs/homeserver.yaml email.smtp_pass "${CLOUDRON_MAIL_SMTP_
yq w -i /app/data/configs/homeserver.yaml email.notif_from "%(app)s <${CLOUDRON_MAIL_FROM}>" yq w -i /app/data/configs/homeserver.yaml email.notif_from "%(app)s <${CLOUDRON_MAIL_FROM}>"
# ldap # ldap
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.uri' "${CLOUDRON_LDAP_URL}" if [[ -n "${CLOUDRON_LDAP_SERVER:-}" ]]; then
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.start_tls' false yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.uri' "${CLOUDRON_LDAP_URL}"
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.base' "${CLOUDRON_LDAP_USERS_BASE_DN}" yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.start_tls' false
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.bind_dn' "${CLOUDRON_LDAP_BIND_DN}" yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.base' "${CLOUDRON_LDAP_USERS_BASE_DN}"
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.bind_password' "${CLOUDRON_LDAP_BIND_PASSWORD}" yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.bind_dn' "${CLOUDRON_LDAP_BIND_DN}"
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.filter' "(objectClass=user)" yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.bind_password' "${CLOUDRON_LDAP_BIND_PASSWORD}"
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.filter' "(objectClass=user)"
else
yq w -i /app/data/configs/homeserver.yaml password_config.localdb_enabled true
fi
# turn (https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.md#synapse-setup) # turn (https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.md#synapse-setup)
yq w -i /app/data/configs/homeserver.yaml turn_uris "[]" yq w -i /app/data/configs/homeserver.yaml turn_uris "[]"

119
test/package-lock.json generated
View File

@@ -53,9 +53,9 @@
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
}, },
"@types/node": { "@types/node": {
"version": "13.11.1", "version": "14.0.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.1.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.5.tgz",
"integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==" "integrity": "sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA=="
}, },
"@types/yauzl": { "@types/yauzl": {
"version": "2.9.1", "version": "2.9.1",
@@ -115,6 +115,11 @@
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
}, },
"async": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
"integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
},
"asynckit": { "asynckit": {
"version": "0.4.0", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -178,16 +183,6 @@
"ansi-styles": "^3.2.1", "ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0" "supports-color": "^5.3.0"
},
"dependencies": {
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"requires": {
"has-flag": "^3.0.0"
}
}
} }
}, },
"chokidar": { "chokidar": {
@@ -206,9 +201,9 @@
} }
}, },
"chromedriver": { "chromedriver": {
"version": "80.0.2", "version": "83.0.0",
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-80.0.2.tgz", "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-83.0.0.tgz",
"integrity": "sha512-MKrTzBtykWuIswRYgUw9dHXr96BShQYSy8NdLlo2LN1mZ17A9nxtz9v0h9z1zKWTVaxT7e0qvo41rSY5BL1i+Q==", "integrity": "sha512-AePp9ykma+z4aKPRqlbzvVlc22VsQ6+rgF+0aL3B5onHOncK18dWSkLrSSJMczP/mXILN9ohGsvpuTwoRSj6OQ==",
"requires": { "requires": {
"@testim/chrome-version": "^1.0.7", "@testim/chrome-version": "^1.0.7",
"axios": "^0.19.2", "axios": "^0.19.2",
@@ -359,9 +354,12 @@
} }
}, },
"ejs": { "ejs": {
"version": "3.0.2", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.0.2.tgz", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz",
"integrity": "sha512-IncmUpn1yN84hy2shb0POJ80FWrfGNY0cxO9f4v+/sG7qcBvAtVWUA1IdzY/8EYUmOVhoKJVdJjNd3AZcnxOjA==" "integrity": "sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==",
"requires": {
"jake": "^10.6.1"
}
}, },
"emoji-regex": { "emoji-regex": {
"version": "7.0.3", "version": "7.0.3",
@@ -464,9 +462,9 @@
"integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="
}, },
"fastq": { "fastq": {
"version": "1.7.0", "version": "1.8.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
"integrity": "sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==", "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==",
"requires": { "requires": {
"reusify": "^1.0.4" "reusify": "^1.0.4"
} }
@@ -479,6 +477,14 @@
"pend": "~1.2.0" "pend": "~1.2.0"
} }
}, },
"filelist": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz",
"integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==",
"requires": {
"minimatch": "^3.0.4"
}
},
"fill-range": { "fill-range": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -532,9 +538,9 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
}, },
"fsevents": { "fsevents": {
"version": "2.1.2", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
"integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
"optional": true "optional": true
}, },
"function-bind": { "function-bind": {
@@ -592,9 +598,9 @@
} }
}, },
"graceful-fs": { "graceful-fs": {
"version": "4.2.3", "version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
}, },
"growl": { "growl": {
"version": "1.10.5", "version": "1.10.5",
@@ -625,9 +631,9 @@
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
}, },
"ignore": { "ignore": {
"version": "5.1.4", "version": "5.1.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.6.tgz",
"integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" "integrity": "sha512-cgXgkypZBcCnOgSihyeqbo6gjIaIyDqPQB7Ra4vhE9m6kigdGoQDMHjviFhRZo3IMlRy6yElosoviMs5YxZXUA=="
}, },
"immediate": { "immediate": {
"version": "3.0.6", "version": "3.0.6",
@@ -755,6 +761,17 @@
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
}, },
"jake": {
"version": "10.7.1",
"resolved": "https://registry.npmjs.org/jake/-/jake-10.7.1.tgz",
"integrity": "sha512-FUkLZXms1LSTQop5EJBdXVzbM0q6yYWMM4vo/TiLQeHJ4UMJVO8DBTZFiAgMBJctin9q92xnr2vdH7Wrpn7tTQ==",
"requires": {
"async": "0.9.x",
"chalk": "^2.4.2",
"filelist": "^1.0.1",
"minimatch": "^3.0.4"
}
},
"js-yaml": { "js-yaml": {
"version": "3.13.1", "version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
@@ -861,9 +878,9 @@
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
}, },
"mocha": { "mocha": {
"version": "7.1.1", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz",
"integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==",
"requires": { "requires": {
"ansi-colors": "3.2.3", "ansi-colors": "3.2.3",
"browser-stdout": "1.3.1", "browser-stdout": "1.3.1",
@@ -878,7 +895,7 @@
"js-yaml": "3.13.1", "js-yaml": "3.13.1",
"log-symbols": "3.0.0", "log-symbols": "3.0.0",
"minimatch": "3.0.4", "minimatch": "3.0.4",
"mkdirp": "0.5.3", "mkdirp": "0.5.5",
"ms": "2.1.1", "ms": "2.1.1",
"node-environment-flags": "1.0.6", "node-environment-flags": "1.0.6",
"object.assign": "4.1.0", "object.assign": "4.1.0",
@@ -913,9 +930,9 @@
} }
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.3", "version": "0.5.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
"integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
"requires": { "requires": {
"minimist": "^1.2.5" "minimist": "^1.2.5"
} }
@@ -924,6 +941,14 @@
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
"supports-color": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
"integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
"requires": {
"has-flag": "^3.0.0"
}
} }
} }
}, },
@@ -1188,9 +1213,9 @@
} }
}, },
"string.prototype.trimend": { "string.prototype.trimend": {
"version": "1.0.0", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
"integrity": "sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==", "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
"requires": { "requires": {
"define-properties": "^1.1.3", "define-properties": "^1.1.3",
"es-abstract": "^1.17.5" "es-abstract": "^1.17.5"
@@ -1217,9 +1242,9 @@
} }
}, },
"string.prototype.trimstart": { "string.prototype.trimstart": {
"version": "1.0.0", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
"integrity": "sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==", "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
"requires": { "requires": {
"define-properties": "^1.1.3", "define-properties": "^1.1.3",
"es-abstract": "^1.17.5" "es-abstract": "^1.17.5"
@@ -1295,9 +1320,9 @@
} }
}, },
"supports-color": { "supports-color": {
"version": "6.0.0", "version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"requires": { "requires": {
"has-flag": "^3.0.0" "has-flag": "^3.0.0"
} }

View File

@@ -9,11 +9,11 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chromedriver": "^80.0.2", "chromedriver": "^83.0.0",
"ejs": "^3.0.2", "ejs": "^3.1.3",
"expect.js": "^0.3.1", "expect.js": "^0.3.1",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"mocha": "^7.1.1", "mocha": "^7.2.0",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"selenium-server-standalone-jar": "^3.141.59", "selenium-server-standalone-jar": "^3.141.59",
"selenium-webdriver": "^3.6.0", "selenium-webdriver": "^3.6.0",

View File

@@ -58,6 +58,37 @@ describe('Application life cycle test', function () {
}); });
} }
// https://matrix.org/docs/spec/client_server/latest#user-interactive-api-in-the-rest-api
function registerUser(done) {
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/register?kind=user').send({
username: username,
password: password,
inhibit_login: false
}).end(function (error, result) {
// we will first get a 401
let session = result.body.session;
console.log('session is', session);
if (result.statusCode !== 401) return done(new Error('Expecting a 401 ' + result.statusCode));
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/register?kind=user').send({
auth: {
type: 'm.login.dummy',
session: session
},
username: username,
password: password,
inhibit_login: false
}).end(function (error, result) {
if (error) return done(error);
if (result.statusCode !== 200) return done(new Error('Login failed with status ' + result.statusCode));
console.log('registered user with id', result.user_id);
done();
});
});
}
// https://matrix.org/docs/spec/client_server/latest // https://matrix.org/docs/spec/client_server/latest
function checkLogin(done) { function checkLogin(done) {
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/login').send({ superagent.post('https://' + app.fqdn + '/_matrix/client/r0/login').send({
@@ -114,6 +145,31 @@ describe('Application life cycle test', function () {
execSync('cloudron build', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' }); execSync('cloudron build', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
}); });
// No SSO
it('install app (no sso)', function () {
execSync('cloudron install --no-sso --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('can get app information', function () {
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
});
it('check landing page', checkLandingPage);
it('can register new user', registerUser);
it('can login', checkLogin);
it('check autojoin', checkAutoJoinRoom);
it('create room', createRoom);
it('check room', checkRoom);
it('uninstall app', function () {
execSync('cloudron uninstall --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
// SSO
it('install app', function () { it('install app', function () {
execSync('cloudron install --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' }); execSync('cloudron install --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
}); });