1
0
mirror of https://git.cloudron.io/cloudron/minio-app synced 2025-09-13 08:19:12 +00:00

Compare commits

...

122 Commits

Author SHA1 Message Date
Girish Ramakrishnan
0b3787bb4c Version 2.7.6 2022-06-27 12:32:03 -07:00
Girish Ramakrishnan
4485660f19 Update minio to 2022-06-25T15-50-16Z 2022-06-27 12:20:47 -07:00
Girish Ramakrishnan
198a7ba2d8 Version 2.7.5 2022-06-20 23:10:07 -07:00
Girish Ramakrishnan
694ea1a835 Update minio to 2022-06-20T23-13-45Z 2022-06-20 22:49:21 -07:00
Girish Ramakrishnan
ae7b78e2d7 Version 2.7.4 2022-06-18 09:17:25 -07:00
Girish Ramakrishnan
f5b85c7dfa Update minio to 2022-06-17T02-00-35Z 2022-06-18 08:54:46 -07:00
Girish Ramakrishnan
6148966516 Version 2.7.3 2022-06-12 10:14:37 -07:00
Girish Ramakrishnan
9967b12167 Update test packages 2022-06-12 10:13:54 -07:00
Girish Ramakrishnan
5574cc464a Update minio to 2022-06-11T19-55-32Z 2022-06-12 10:03:46 -07:00
Girish Ramakrishnan
794538bbe9 Version 2.7.2 2022-06-11 08:44:31 -07:00
Girish Ramakrishnan
a1e5589dca Update mc 2022-06-11 08:30:31 -07:00
Girish Ramakrishnan
f7d9d69187 Update minio to 2022-06-10T16-59-15Z 2022-06-11 08:29:26 -07:00
Girish Ramakrishnan
2762522066 Version 2.7.1 2022-06-10 11:33:52 -07:00
Girish Ramakrishnan
4c6b99857c Bump memory limit 2022-06-10 11:25:20 -07:00
Girish Ramakrishnan
6c788ded2d Version 2.7.0 2022-06-06 21:26:18 -07:00
Girish Ramakrishnan
542b8a4412 add delays everywhere
doing things fast in the ui breaks now
2022-06-06 21:25:18 -07:00
Girish Ramakrishnan
4b3b4b9d4d Update minio to 2022-06-07T00-33-41Z 2022-06-06 20:57:01 -07:00
Girish Ramakrishnan
a0c9c76bd8 Update minio to 2022-06-03T01-40-53Z 2022-06-06 12:48:55 -07:00
Girish Ramakrishnan
d23b35e1b8 Version 2.6.0 2022-06-02 08:23:53 -07:00
Girish Ramakrishnan
32684767b6 Update minio to 2022-06-02T02-11-04Z 2022-06-02 08:07:35 -07:00
Girish Ramakrishnan
ad93f49467 Version 2.5.3 2022-05-26 08:51:17 -07:00
Girish Ramakrishnan
52b7e49b44 Update minio to 2022-05-26T05-48-41Z 2022-05-26 08:43:30 -07:00
Girish Ramakrishnan
ab20e34d26 Version 2.5.2 2022-05-23 19:35:40 -07:00
Girish Ramakrishnan
522cfeff67 Update test packages 2022-05-23 19:30:42 -07:00
Girish Ramakrishnan
d7b08ca48c Update minio to 2022-05-23T18-45-11Z 2022-05-23 19:29:42 -07:00
Girish Ramakrishnan
058673d882 Version 2.5.1 2022-05-20 09:01:45 -07:00
Girish Ramakrishnan
8c3ea72c86 Update minio to 2022-05-19T18-20-59Z 2022-05-20 08:55:01 -07:00
Girish Ramakrishnan
74eea35e18 Version 2.5.0 2022-05-09 09:32:24 -07:00
Girish Ramakrishnan
eafdc900b3 Update minio to 2022-05-08T23-50-31Z 2022-05-09 09:18:17 -07:00
Girish Ramakrishnan
0ec3052ad8 Version 2.4.14 2022-05-04 09:18:40 -07:00
Girish Ramakrishnan
c10b3888f0 Update mc again 2022-05-04 09:08:58 -07:00
Girish Ramakrishnan
8d2b9d84ce Update minio to 2022-05-04T07-45-27Z 2022-05-04 09:05:00 -07:00
Girish Ramakrishnan
13a4de046d Version 2.4.13 2022-05-03 15:42:40 -07:00
Girish Ramakrishnan
d030ce00cc Update minio to 2022-05-03T20-36-08Z 2022-05-03 15:32:54 -07:00
Girish Ramakrishnan
a2ea852bd4 can only change password with env vars now
https://docs.min.io/docs/minio-server-configuration-guide.html#credentials
2022-04-30 15:45:21 -07:00
Girish Ramakrishnan
aeeb7473b9 Version 2.4.12 2022-04-29 10:57:03 -07:00
Girish Ramakrishnan
a988358a84 Update minio to 2022-04-29T01-27-09Z 2022-04-29 10:49:15 -07:00
Girish Ramakrishnan
76e75b2421 Version 2.4.11 2022-04-25 22:46:17 -07:00
Girish Ramakrishnan
51bd508a5e Update minio to 2022-04-26T01-20-24Z 2022-04-25 22:31:06 -07:00
Girish Ramakrishnan
4e042bb62f Version 2.4.10 2022-04-17 11:35:02 -05:00
Girish Ramakrishnan
00fc4851bc Update minio to 2022-04-16T04-26-02Z 2022-04-17 11:23:56 -05:00
Girish Ramakrishnan
fb0dae799d Version 2.4.9 2022-04-13 09:18:58 -05:00
Girish Ramakrishnan
a68bdeeade Update minio to 2022-04-12T06-55-35Z 2022-04-13 09:08:05 -05:00
Girish Ramakrishnan
c1dbd2139f Version 2.4.8 2022-04-10 06:57:22 -07:00
Girish Ramakrishnan
fe88ff7d1c Update minio to 2022-04-09T15-09-52Z 2022-04-10 06:52:12 -07:00
Girish Ramakrishnan
fecebfd7e1 Version 2.4.7 2022-04-04 09:21:42 -07:00
Girish Ramakrishnan
0d171ddb5a Update minio to 2022-04-01T03-41-39Z 2022-04-04 09:06:44 -07:00
Girish Ramakrishnan
a5736bba2b Version 2.4.6 2022-03-29 11:27:46 -07:00
Girish Ramakrishnan
f1181e9383 Update minio to 2022-03-26T06-49-28Z 2022-03-29 11:19:33 -07:00
Girish Ramakrishnan
6346e564f9 Version 2.4.5 2022-03-24 09:29:36 -07:00
Girish Ramakrishnan
4843a8345a Update minio to 2022-03-24T00-43-44Z 2022-03-24 09:22:04 -07:00
Girish Ramakrishnan
fd7c75da9f Version 2.4.4 2022-03-22 09:21:29 -07:00
Girish Ramakrishnan
327ede57c3 Update minio to 2022-03-22T02-05-10Z 2022-03-22 09:06:33 -07:00
Girish Ramakrishnan
179628163f Version 2.4.3 2022-03-17 09:39:55 -07:00
Girish Ramakrishnan
dfcab10abe Update minio to 2022-03-17T06-34-49Z 2022-03-17 09:15:47 -07:00
Girish Ramakrishnan
642f1860d2 Version 2.4.2 2022-03-15 09:45:31 -07:00
Girish Ramakrishnan
bc6656111f Update client also 2022-03-15 09:37:51 -07:00
Girish Ramakrishnan
53371d5428 Update minio to 2022-03-14T18-25-24Z 2022-03-15 09:34:11 -07:00
Girish Ramakrishnan
444d1972e2 Version 2.4.1 2022-03-13 10:41:40 -07:00
Girish Ramakrishnan
1f51564fc7 Update minio to 2022-03-11T23-57-45Z 2022-03-13 10:35:38 -07:00
Girish Ramakrishnan
f49c69d566 Version 2.4.0 2022-03-11 11:11:33 -08:00
Girish Ramakrishnan
80802dc892 Update test packages 2022-03-11 11:00:27 -08:00
Girish Ramakrishnan
c23815b757 Update minio to 2022-03-11T11-08-23Z 2022-03-11 10:58:33 -08:00
Johannes Zellner
b195eb7e21 Bump version for 2022-03-08T22-28-51Z 2022-03-10 09:31:48 +01:00
Johannes Zellner
2386aa1325 Update test deps 2022-03-07 16:11:54 +01:00
Johannes Zellner
b64685aeee Bump version for 2022-03-05T06-32-39Z 2022-03-07 16:11:37 +01:00
Girish Ramakrishnan
6f845a87c5 Version 2.3.2 2022-02-26 09:51:57 -08:00
Girish Ramakrishnan
0a772c4f23 Update minio to 2022-02-26T02-54-46Z 2022-02-26 09:36:34 -08:00
Girish Ramakrishnan
69bf7496e7 Version 2.3.1 2022-02-24 19:25:46 -08:00
Girish Ramakrishnan
8925843f34 Update minio to 2022-02-24T22-12-01Z 2022-02-24 19:16:28 -08:00
Girish Ramakrishnan
1ef2baf396 Version 2.3.0 2022-02-18 12:34:30 -08:00
Girish Ramakrishnan
20706ccaf4 Update mc also 2022-02-18 12:27:04 -08:00
Girish Ramakrishnan
4100d16964 Update minio to 2022-02-18T01-50-10Z 2022-02-18 12:26:01 -08:00
Girish Ramakrishnan
a85c1935bc Version 2.2.1 2022-02-07 13:10:25 -08:00
Girish Ramakrishnan
f4996c9fc9 Update minio to 2022-02-07T08-17-33Z 2022-02-07 11:11:55 -08:00
Girish Ramakrishnan
5e1f06e1e9 Version 2.2.0 2022-02-06 11:52:30 -08:00
Girish Ramakrishnan
a89ff592f0 Update mc as well 2022-02-06 11:31:28 -08:00
Girish Ramakrishnan
9471c04cb9 Update minio to 2022-02-05T04-40-59Z 2022-02-06 11:23:13 -08:00
Girish Ramakrishnan
20dbe5de5a Version 2.1.0 2022-01-30 10:25:56 -08:00
Girish Ramakrishnan
c0a34431df Fix tests for UI changes 2022-01-30 10:19:09 -08:00
Girish Ramakrishnan
ce95621eb4 Update test packages 2022-01-30 10:11:09 -08:00
Girish Ramakrishnan
cd4fec9029 Update minio to 2022-01-28T02-28-16Z 2022-01-30 09:26:19 -08:00
Girish Ramakrishnan
d1677d9ef9 Update minio to 2022-01-25T19-56-04Z 2022-01-26 14:33:40 -08:00
Girish Ramakrishnan
131038a255 Version 2.0.0-1 2022-01-21 19:03:22 -08:00
Girish Ramakrishnan
0b59adbb35 Update screenshots 2022-01-21 17:21:00 -08:00
Girish Ramakrishnan
76ba09cd4b check redirection and api request 2022-01-21 14:38:56 -08:00
Girish Ramakrishnan
9820e5bf90 make update possible without the API_DOMAIN 2022-01-21 14:18:25 -08:00
Girish Ramakrishnan
7d38995613 fix tests 2022-01-21 14:08:52 -08:00
Girish Ramakrishnan
6162ff540b Fix root password init
We can now use MINIO_ROOT_USER  and MINIO_ROOT_PASSWORD env vars.
These default to minioadmin. When set, it will change/update the password.
When not set, it keeps the old password from the last run.
2022-01-21 13:28:02 -08:00
Girish Ramakrishnan
c0b9c4167f Make it work 2022-01-21 13:11:25 -08:00
Girish Ramakrishnan
fa8f08f760 Update minio to RELEASE.2022-01-08T03-11-54Z 2022-01-21 10:31:00 -08:00
Girish Ramakrishnan
84072d9227 Use httpPorts 2022-01-21 10:29:12 -08:00
Johannes Zellner
0f877a2d95 Update test deps 2021-09-15 13:11:58 +02:00
Johannes Zellner
44ed6f8aee Bump version for 2021-09-15T04-54-25Z 2021-09-15 13:10:14 +02:00
Johannes Zellner
10c6c019fd Use 2021-07-22T05-23-32Z 2021-07-22 13:07:46 +02:00
Girish Ramakrishnan
93853449f9 Use COPY instead of ADD 2021-07-21 14:26:58 -07:00
Johannes Zellner
16de972113 Until we change usermanagement, there is no need for a major version update 2021-07-20 15:38:29 +02:00
Johannes Zellner
f9ca8a265e Remove ldap addon for the moment 2021-07-20 15:35:45 +02:00
Johannes Zellner
e82c8db22d Merge branch 'update/1.2.0' into 'master'
Update Minio with Console

See merge request cloudron/minio-app!2
2021-07-20 11:28:26 +00:00
Elias Hackradt
e38d1020ac Updated tests to the new UI and redo the old tests with async AND disable LDAP support for now 2021-07-16 15:33:27 +02:00
Elias Hackradt
f814368e12 Added LDAP settings for unsecure internal communication; fixt missing export in env.sh 2021-07-11 23:15:50 +02:00
Elias Hackradt
8713b30b79 Added doc url 2021-07-11 22:58:41 +02:00
Elias Hackradt
9683b980b0 Add default config for mc in startup 2021-07-11 22:56:59 +02:00
Elias Hackradt
9272b4fa7b Stringify vars - fix var wrong in doc 2021-07-11 22:34:38 +02:00
Elias Hackradt
b6f66e8e25 Added initial LDAP Vars and cloudon addon 2021-07-11 22:28:37 +02:00
Elias Hackradt
612d47f4ac Added new console binary, added port to config, added default env for redirect 2021-07-11 22:15:23 +02:00
Johannes Zellner
c65ab2057f Update test deps 2021-07-08 09:20:28 +02:00
Johannes Zellner
03d7a890c3 Bump version for 2021-07-08T01-15-01Z 2021-07-08 09:20:11 +02:00
Girish Ramakrishnan
1f9617699a Version 1.165.0 2021-06-23 11:08:08 -07:00
Girish Ramakrishnan
17265598fd Update test packages 2021-06-23 11:08:04 -07:00
Girish Ramakrishnan
ab3caee22d Update minio to 2021-06-17T00-10-46Z 2021-06-23 10:06:29 -07:00
Johannes Zellner
e9c6aad49f Bump version for 2021-06-14T01-29-23Z 2021-06-14 12:07:48 +02:00
Johannes Zellner
5e92ec256f Fix version in changelog 2021-06-08 14:34:03 +02:00
Johannes Zellner
b1732c5fe7 Update test deps 2021-06-08 14:19:57 +02:00
Johannes Zellner
cce40f5225 Bump version for 2021-06-07T21-40-51Z 2021-06-08 14:19:21 +02:00
Johannes Zellner
07c38643cc And adjust the latest version number in changelog 2021-05-31 09:27:04 +02:00
Johannes Zellner
ca9c3a6034 Somehow changelog for 1.164.2 was not there 2021-05-31 09:26:33 +02:00
Johannes Zellner
2c7ca16313 Update test deps 2021-05-31 09:16:06 +02:00
Johannes Zellner
8135c8bab4 Bump version for RELEASE.2021-05-27T22-06-31Z 2021-05-31 09:15:39 +02:00
Girish Ramakrishnan
c89a1e1d62 Update minio to RELEASE.2021-05-22T02-34-39Z 2021-05-24 10:04:05 -07:00
Girish Ramakrishnan
ba9f0e152f Version 1.164.1 2021-05-21 11:55:26 -07:00
Girish Ramakrishnan
c106b7f078 Update minio to 2021-05-20T22-31-44Z 2021-05-21 11:42:39 -07:00
15 changed files with 2671 additions and 429 deletions

270
CHANGELOG
View File

@@ -972,3 +972,273 @@ Improve replication performance. See (#12080, #12054, #12009) for more details.
* Update minio to 2021-05-18T00-53-28Z * Update minio to 2021-05-18T00-53-28Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-05-18T00-53-28Z) * [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-05-18T00-53-28Z)
[1.164.1]
* Update minio to 2021-05-20T22-31-44Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-05-20T22-31-44Z)
[1.164.2]
* Update minio to 2021-05-22T02-34-39Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-05-22T02-34-39Z)
[1.164.3]
* Update minio to 2021-05-27T22-06-31Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-05-27T22-06-31Z)
[1.164.4]
* Update minio to 2021-06-07T21-40-51Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-06-07T21-40-51Z)
[1.164.5]
* Update minio to 2021-06-14T01-29-23Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-06-14T01-29-23Z)
[1.165.0]
* Update minio to 2021-06-17T00-10-46Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-06-17T00-10-46Z)
[1.165.1]
* Update minio to 2021-07-08T01-15-01Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-07-08T01-15-01Z)
[1.166.0]
* Update minio to 2021-07-22T05-23-32Z
* Use new minio dashboard 2021-06-13T17-48-22Z
[1.167.0]
* Update minio to 2021-09-15T04-54-25Z
* Update minio dashboard to 2021-09-02T09-21-27Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2021-09-15T04-54-25Z)
* SSE-KMS support was not working with copyObject() refer #13206
* Support UserInfo claims refer #12469
[2.0.0]
* **This is a major update. The changes below are required for the app to work. The newer version of the app has 2 domain names - one for the console (browser UI) and one of the API domain (API/S3 requests). **
* Be sure to take a backup before updating the app.
* Once updated, go to the `Location` view and set the API Domain.
* Update the various apps/servers/code to use the API domain as the backup destination.
[2.1.0]
* Update minio to 2022-01-28T02-28-16Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-01-28T02-28-16Z)
* make sure to pass groups for all credentials while verifying policies by @harshavardhana in #14193
* do not expect 'speedtest' to be a bucket by @harshavardhana in #14199
* Optimize read locker cleanup by @klauspost in #14200
* Ensure that AssumeRole calls are sent to Audit log by @donatello in #14202
[2.2.0]
* Update minio to 2022-02-05T04-40-59Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-02-05T04-40-59Z)
[2.2.1]
* Update minio to 2022-02-07T08-17-33Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-02-07T08-17-33Z)
[2.3.0]
* Update minio to 2022-02-18T01-50-10Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-02-18T01-50-10Z)
[2.3.1]
* Update minio to 2022-02-24T22-12-01Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-02-24T22-12-01Z)
[2.3.2]
* Update minio to 2022-02-26T02-54-46Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-02-26T02-54-46Z)
[2.3.3]
* Update minio to 2022-03-05T06-32-39Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-05T06-32-39Z)
[2.3.4]
* Update minio to 2022-03-08T22-28-51Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-08T22-28-51Z)
[2.4.0]
* Update minio to 2022-03-11T11-08-23Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-11T11-08-23Z)
[2.4.1]
* Update minio to 2022-03-11T23-57-45Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-11T23-57-45Z)
* add filesystem group change policy for large minio deployments by @dharapvj in #14528
* Fix regression from range GET proxying #14345 by @poornas in #14532
[2.4.2]
* Update minio to 2022-03-14T18-25-24Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-14T18-25-24Z)
[2.4.3]
* Update minio to 2022-03-17T06-34-49Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-17T06-34-49Z)
[2.4.4]
* Update minio to 2022-03-22T02-05-10Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-22T02-05-10Z)
[2.4.5]
* Update minio to 2022-03-24T00-43-44Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-24T00-43-44Z)
[2.4.6]
* Update minio to 2022-03-26T06-49-28Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-03-26T06-49-28Z)
[2.4.7]
* Update minio to 2022-04-01T03-41-39Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-04-01T03-41-39Z)
* Always get the actual object size in bulk SSE-S3 by @vadmeste in #14637
* listing: decrypt only SSE-S3 single-part ETags by @aead in #14638
* Load IAM with a single listing call by @donatello in #14640
* fix: multiple pool setup return incorrect DeleteMarker metadata by @harshavardhana in #14642
* Quick type for fix ttfb entry in table by @eco-minio in #14647
[2.4.8]
* Update minio to 2022-04-09T15-09-52Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-04-09T15-09-52Z)
* Add metrics for observing IAM sync operations by @donatello in #14680
* Write deployment id to health report at the start by @anjalshireesh in #14673
* etag: add Format and Decrypt functions by @aead in #14659
* Remove unnecessary log printing by @vadmeste in #14685
* listing: improve listing of encrypted objects by @aead in #14667
* Set inspect-input.txt modtime by @klauspost in #14688
[2.4.9]
* Update minio to 2022-04-12T06-55-35Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-04-12T06-55-35Z)
* Fix a privilege escalation security issue - https://github.com/minio/minio/security/advisories/GHSA-2j69-jjmg-534q
* Console v0.15.10 by @dvaldivia in #14723
* align atomic variables once more for 32bit by @harshavardhana in #14721
* make sure to pass Lifecycle if set for List filtering by @harshavardhana in #14722
* Set permissions for GitHub actions by @naveensrinivasan in #14693
* Add support for minio tier type by @krisis in #14468
[2.4.10]
* Update minio to 2022-04-16T04-26-02Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-04-16T04-26-02Z)
* Allow parallel decom migration threads to be more than erasure sets by @krishnasrinivas in #14733
* Include speedtest as part of healthinfo api by @anjalshireesh in #14696
* Support templating accessKey existingSecret and bucket name by @yisiqi in #14643
* enable go1.18.x builds by @harshavardhana in #14746
* [S3Select] Switch to new parquet library and reduce locking by @donatello in #14731
* Update Console v0.15.13 by @dvaldivia in #14751
[2.4.11]
* Update minio to 2022-04-26T01-20-24Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-04-26T01-20-24Z)
[2.4.12]
* Update minio to 2022-04-29T01-27-09Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-04-29T01-27-09Z)
[2.4.13]
* Update minio to 2022-05-03T20-36-08Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-05-03T20-36-08Z)
* fix: panic in browser redirect handler for unexpected r.Host by @harshavardhana in #14844
* fix: reject invalid r.Host headers by @harshavardhana in #14846
* fix: disallow newer policies, users & groups with space characters by @harshavardhana in #14845
* Check error status codes by @klauspost in #14850
* Log Range Header by @klauspost in #14851
* fix: remove embedded-policy as requested by the user by @harshavardhana in #14847
[2.4.14]
* Update minio to 2022-05-04T07-45-27Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-05-04T07-45-27Z)
* Add audit log for decommissioning
[2.5.0]
* Update minio to 2022-05-08T23-50-31Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-05-08T23-50-31Z)
* Fix missing annotations for PVCs by @Sea-you in #14793
* Add OPA doc and remove deprecation marking by @donatello in #14863
* avoid concurrent reads and writes to opts.UserDefined by @harshavardhana in #14862
[2.5.1]
* Update minio to 2022-05-19T18-20-59Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-05-19T18-20-59Z)
* pools: GetObjectNInfo should cover locking during object read by @vadmeste in #14887
* tracing: Add disk path to storage tracing by @vadmeste in #14883
* Add support for Access Management Plugin by @donatello in #14875
* If decom of an object fails, retry for 3 times by @krishnasrinivas in #14861
* update new name for MINIO_POLICY_OPA_URL by @itsericqiu in #14898
* add support for extra Prometheus labels by @harshavardhana in #14899
* use BadRequest HTTP status instead of Conflict for certain errors by @harshavardhana in #14900
[2.5.2]
* Update minio to 2022-05-23T18-45-11Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-05-23T18-45-11Z)
* mrf: Fix stale MRF data showed in heal info by @vadmeste in #14953
* Relax site replication syncing of service accounts by @poornas in #14955
* Fix WalkDir fallback hot loop by @klauspost in #14961
* fetch bucket replication stats across peers in single call by @harshavardhana in #14956
[2.5.3]
* Update minio to 2022-05-26T05-48-41Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-05-26T05-48-41Z)
* replication healing: Fix typo when healing bucket quota info by @vadmeste in #14966
* Do not use inline data size in xl.meta quorum calculation by @vadmeste in #14831
* hash-set: Add file input for debug tool by @klauspost in #14965
* site replication: Allow replication rule edit by @poornas in #14969
* fix: copyObject on versioned bucket when updating metadata by @harshavardhana in #14971
[2.6.0]
* Update minio to 2022-06-02T02-11-04Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-06-02T02-11-04Z)
* feat: Single drive XL implementation
[2.7.0]
* Update minio to 2022-06-07T00-33-41Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-06-07T00-33-41Z)
[2.7.1]
* Update minio to 2022-06-07T00-33-41Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-06-07T00-33-41Z)
* do not print errors upon 'nil' err (06/06/22) (Minio Trusted)
[2.7.2]
* Update minio to 2022-06-10T16-59-15Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-06-10T16-59-15Z)
* Include the entirety of vendor folder in .gitignore by @kaankabalak in #15046
* relax O_DIRECT in single drive mode if unsupported by @harshavardhana in #15045
* Bump Console v0.18.1 by @dvaldivia in #15051
* healthcheck cluster endpoint should honor write/readQuorum per pool by @harshavardhana in #15053
* fix: make metrics endpoint responsive by reducing the chatter by @harshavardhana in #15055
[2.7.3]
* Update minio to 2022-06-11T19-55-32Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-06-11T19-55-32Z)
* debug: verify diff on latest objects on source and target buckets by @harshavardhana in #15069
* fix: add missing minio_s3_requests_total by @harshavardhana in #15070
* Update dperf to 0.4.1 by @vadmeste in #15071
* sts: Avoid printing all STS errors by @vadmeste in #15065
[2.7.4]
* Update minio to 2022-06-17T02-00-35Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-06-17T02-00-35Z)
* debug: Close object after check by @vadmeste in #15077
* kms: initialize after cli parsing by @vadmeste in #15076
* Support configuration of a session policy file by @rgcostea in #15078
* erasure-sd: Evaluate versioning Prefix in multi-delete objects by @vadmeste in #15081
* fix: simplify healthcheck code to freeze calls only once by @harshavardhana in #15082
* add bucket level S3 received/sent bytes by @harshavardhana in #15084
* fix: background local test also via channel by @harshavardhana in #15086
* add dataErrs for healing debug log by @harshavardhana in #15092
[2.7.5]
* Update minio to 2022-06-20T23-13-45Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-06-20T23-13-45Z)
* Update gopsutil to v3.22.5 by @danieljakots in #15098
* fix: ignore printing io.EOF during WalkDir() on concurrently modified objects by @harshavardhana in #15100
* Avoid CompleteMultipart freeze with unexpected network issue by @vadmeste in #15102
* Add generic function to retrieve config value with metadata by @donatello in #15083
* fix typo in site replication version healing by @poornas in #15103
* Add import/export APIs to migrate bucket metadata by @poornas in #14929
[2.7.6]
* Update minio to 2022-06-25T15-50-16Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2022-06-25T15-50-16Z)
* remove gateway banner and some other TODO loggers by @harshavardhana in #15125
* s3-verify: Fix endpoint and missing comparison by @vadmeste in #15129
* Parallelize new disks healing of different erasure sets by @vadmeste in #15112
* fips: simplify TLS configuration by @aead in #15127
* fix: cant parse comment without '=' in environment file by @anoworl in #15130
* add go1.18 specific curve preferences by @harshavardhana in #15132

View File

@@ -5,23 +5,33 @@
"description": "file://DESCRIPTION.md", "description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG", "changelog": "file://CHANGELOG",
"tagline": "Distributed object storage", "tagline": "Distributed object storage",
"version": "1.164.0", "version": "2.7.6",
"upstreamVersion": "2022-06-25T15-50-16Z",
"healthCheckPath": "/minio/login", "healthCheckPath": "/minio/login",
"memoryLimit": 805306368,
"httpPort": 8000, "httpPort": 8000,
"httpPorts": {
"API_SERVER_DOMAIN": {
"title": "API Server Domain",
"description": "The domain name for MinIO (S3) API requests",
"containerPort": 9000,
"defaultValue": "minio-api"
}
},
"addons": { "addons": {
"localstorage": {} "localstorage": {}
}, },
"manifestVersion": 2, "manifestVersion": 2,
"website": "http://www.minio.io", "website": "http://www.minio.io",
"minBoxVersion": "5.3.0", "minBoxVersion": "7.1.2",
"forumUrl": "https://forum.cloudron.io/category/69/minio", "forumUrl": "https://forum.cloudron.io/category/69/minio",
"documentationUrl": "https://docs.cloudron.io/apps/minio/", "documentationUrl": "https://docs.cloudron.io/apps/minio/",
"contactEmail": "support@cloudron.io", "contactEmail": "support@cloudron.io",
"icon": "logo.png", "icon": "logo.png",
"tags": [ "storage", "hosting", "s3", "objectstore" ], "tags": [ "storage", "hosting", "s3", "objectstore" ],
"mediaLinks": [ "mediaLinks": [
"https://screenshots.cloudron.io/io.minio.cloudronapp/minio-browser-gateway.png", "https://screenshots.cloudron.io/io.minio.cloudronapp/pic1.png",
"https://screenshots.cloudron.io/io.minio.cloudronapp/minio-browser.png" "https://screenshots.cloudron.io/io.minio.cloudronapp/pic2.png"
], ],
"postInstallMessage": "file://POSTINSTALL.md" "postInstallMessage": "file://POSTINSTALL.md"
} }

View File

@@ -1,29 +1,29 @@
This app packages Minio <upstream>2021-05-18T00-53-28Z</upstream>. ## About
Minio is a distributed object storage server built for cloud applications and devops. Minio is a distributed object storage server built for cloud applications and devops.
### Features ## Features
#### Amazon S3 Compatible ### Amazon S3 Compatible
Minio implements Amazon S3 v4 APIs. Minio also includes client SDKs and a console utility. Minio implements Amazon S3 v4 APIs. Minio also includes client SDKs and a console utility.
#### Minimalist Design ### Minimalist Design
Minio is deeply influenced by minimalism. We believe that only simple things scale. Minio is deeply influenced by minimalism. We believe that only simple things scale.
#### Apache License 2.0 ### Apache License 2.0
Minio is free software, released under Apache license v2.0. Minio has an active developer and user community. Minio is free software, released under Apache license v2.0. Minio has an active developer and user community.
#### Lambda Functions ### Lambda Functions
Minio triggers Lambda functions through event notification service. In addition Minio also supports simple queueing service for AMQP, Elasticsearch, Redis, NATS and Postgres targets. Minio triggers Lambda functions through event notification service. In addition Minio also supports simple queueing service for AMQP, Elasticsearch, Redis, NATS and Postgres targets.
#### Erasure Code & Bitrot Protection ### Erasure Code & Bitrot Protection
Minio protects data against hardware failures and silent data corruption using erasure code and checksums. You may lose half the number of drives and still recover from it. Minio protects data against hardware failures and silent data corruption using erasure code and checksums. You may lose half the number of drives and still recover from it.
#### Written in Go ### Written in Go
Go is an emerging language of choice for modern cloud infrastructure projects. Go language enables Minio to be highly concurrent and lightweight. Go is an emerging language of choice for modern cloud infrastructure projects. Go language enables Minio to be highly concurrent and lightweight.

View File

@@ -1,14 +1,16 @@
FROM cloudron/base:3.0.0@sha256:455c70428723e3a823198c57472785437eb6eab082e79b3ff04ea584faf46e92 FROM cloudron/base:3.2.0@sha256:ba1d566164a67c266782545ea9809dc611c4152e27686fd14060332dd88263ea
ARG VERSION=RELEASE.2021-05-18T00-53-28Z
RUN mkdir -p /app/code \
&& wget https://dl.min.io/server/minio/release/linux-amd64/minio.${VERSION} -O /app/code/minio \
&& chmod +x /app/code/minio
RUN mkdir -p /app/code
WORKDIR /app/code WORKDIR /app/code
ADD start.sh /app/code/start.sh ARG VERSION=RELEASE.2022-06-25T15-50-16Z
ADD minio-credentials /app/code/minio-credentials ARG MC_VERSION=RELEASE.2022-06-26T18-51-48Z
# sometimes here https://dl.min.io/server/minio/release/linux-amd64/archive/
RUN wget https://dl.min.io/server/minio/release/linux-amd64/minio.${VERSION} -O /app/code/minio && chmod +x /app/code/minio
# https://dl.min.io/client/mc/release/linux-amd64/
RUN wget https://dl.min.io/client/mc/release/linux-amd64/mc.${MC_VERSION} -O /app/code/mc && chmod +x /app/code/mc
COPY env.sh start.sh /app/code/
CMD [ "/app/code/start.sh" ] CMD [ "/app/code/start.sh" ]

View File

@@ -34,3 +34,6 @@ npm install
PATH=$PATH:node_modules/.bin mocha --bail test.js PATH=$PATH:node_modules/.bin mocha --bail test.js
``` ```
## Notes
MinIO Console is an embedded web-based object browser built into MinIO Server

9
env.sh Normal file
View File

@@ -0,0 +1,9 @@
# Add custom minio configuration to this file. Restart the app for changes to take effect.
export CLOUDRON_MINIO_STARTUP_ARGS='server /app/data/data'
# See https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html#envvar.MINIO_ROOT_USER
# You can use pwgen -1s 64 to generate usernames and passwords
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin

View File

@@ -1,41 +0,0 @@
#!/usr/bin/env node
'use strict';
const fs = require('fs');
const MINIO_CONFIG = '/app/data/data/.minio.sys/config/config.json';
function usage() {
console.log('Usage:\n');
console.log('\tminio-credentials get');
console.log('\tminio-credentials set <access key> <secret key>');
console.log();
}
let config = JSON.parse(fs.readFileSync(MINIO_CONFIG, 'utf8'));
let adminCredentials = config['credentials']['_'];
let accessKey = adminCredentials.filter(kv => kv.key === 'access_key')[0];
let secretKey = adminCredentials.filter(kv => kv.key === 'secret_key')[0];
if (process.argv[2] === 'get') {
console.log('Access Key:', accessKey.value);
console.log('Secret Key:', secretKey.value);
} else if (process.argv[2] === 'set') {
if (process.argv.length !== 5) return usage();
// https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html
if (process.argv[4].length < 5) return console.log('secret key must be atleast 5 characters');
if (!/^[\w+=,.@-]+$/.test(process.argv[3])) return console.log('access key has invalid characters');
accessKey.value = process.argv[3];
if (process.argv[4].length < 8) return console.log('secret key must be atleast 8 characters');
secretKey.value = process.argv[4];
fs.writeFileSync(MINIO_CONFIG, JSON.stringify(config), 'utf8');
console.log('Credentials updated. Restart minio app for new credentials to take effect.\n');
} else {
usage();
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

BIN
screenshots/pic1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
screenshots/pic2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@@ -4,16 +4,23 @@ set -eu
mkdir -p /app/data/data /run/minio/config /run/minio/certs mkdir -p /app/data/data /run/minio/config /run/minio/certs
# minio is used for backups at times and has a large number of files. optimize by checking if files [[ ! -f /app/data/env.sh ]] && cp /app/code/env.sh /app/data/env.sh
# are actually in correct chown state source /app/data/env.sh
# https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html#envvar.MINIO_SERVER_URL
[[ -n "${API_SERVER_DOMAIN:-}" ]] && export MINIO_SERVER_URL="https://${API_SERVER_DOMAIN}"
export MINIO_BROWSER_REDIRECT_URL="https://${CLOUDRON_APP_DOMAIN}"
if [[ ! -d /app/data/mc_config ]]; then
mkdir -p /app/data/mc_config
/app/code/mc --config-dir /app/data/mc_config &> /dev/null || true
fi
# minio is used for backups at times and has a large number of files. optimize by checking if files are actually in correct chown state
echo "==> Changing ownership" echo "==> Changing ownership"
[[ $(stat --format '%U' /app/data/data) != "cloudron" ]] && chown -R cloudron:cloudron /app/data [[ $(stat --format '%U' /app/data/data) != "cloudron" ]] && chown -R cloudron:cloudron /app/data
[[ ! -f /app/data/env.sh ]] && echo -e "# Add custom minio configuration to this file. Restart the app for changes to take effect.\n\nexport CLOUDRON_MINIO_STARTUP_ARGS='server /app/data/data'" > /app/data/env.sh
source /app/data/env.sh
# the --config-dir is deprecated and not used. but without it, minio will try to create $HOME/.minio :/ same for --certs-dir # the --config-dir is deprecated and not used. but without it, minio will try to create $HOME/.minio :/ same for --certs-dir
echo "==> Starting minio" echo "==> Starting minio"
exec /usr/local/bin/gosu cloudron:cloudron /app/code/minio --certs-dir /run/minio/certs --config-dir /run/minio/config --quiet ${CLOUDRON_MINIO_STARTUP_ARGS} --address :8000 exec /usr/local/bin/gosu cloudron:cloudron /app/code/minio --certs-dir /run/minio/certs --config-dir /run/minio/config --quiet ${CLOUDRON_MINIO_STARTUP_ARGS} --address :9000 --console-address :8000

2506
test/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -9,9 +9,11 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chromedriver": "^89.0.0", "chromedriver": "^102.0.0",
"delay": "^5.0.0",
"expect.js": "^0.3.1", "expect.js": "^0.3.1",
"mocha": "^8.3.2", "mocha": "^10.0.0",
"selenium-webdriver": "^3.6.0" "selenium-webdriver": "^4.2.0",
"superagent": "^7.1.6"
} }
} }

View File

@@ -1,31 +1,34 @@
#!/usr/bin/env node #!/usr/bin/env node
/* jshint esversion: 8 */
/* global describe */ /* global describe */
/* global before */ /* global before */
/* global after */ /* global after */
/* global it */ /* global it */
/* global xit */
'use strict'; 'use strict';
require('chromedriver'); require('chromedriver');
var execSync = require('child_process').execSync, const delay = require('delay'),
execSync = require('child_process').execSync,
expect = require('expect.js'), expect = require('expect.js'),
fs = require('fs'),
path = require('path'), path = require('path'),
{ Builder, By, Key, until } = require('selenium-webdriver'), superagent = require('superagent'),
{ Builder, By, until } = require('selenium-webdriver'),
{ Options } = require('selenium-webdriver/chrome'); { Options } = require('selenium-webdriver/chrome');
describe('Application life cycle test', function () { describe('Application life cycle test', function () {
this.timeout(0); this.timeout(0);
const LOCATION = 'test'; const LOCATION = 'test';
const TEST_TIMEOUT = 10000; const TEST_TIMEOUT = 30000;
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
const BUCKET = 'cloudrontestbucket'; const BUCKET = 'cloudrontestbucket';
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
var app; let browser, app;
var browser;
before(function () { before(function () {
browser = new Builder().forBrowser('chrome').setChromeOptions(new Options().windowSize({ width: 1280, height: 1024 })).build(); browser = new Builder().forBrowser('chrome').setChromeOptions(new Options().windowSize({ width: 1280, height: 1024 })).build();
@@ -35,132 +38,85 @@ describe('Application life cycle test', function () {
browser.quit(); browser.quit();
}); });
async function waitForElement(elem) {
await browser.wait(until.elementLocated(elem), TEST_TIMEOUT);
await browser.wait(until.elementIsVisible(browser.findElement(elem)), TEST_TIMEOUT);
}
function getAppInfo() { function getAppInfo() {
var inspect = JSON.parse(execSync('cloudron inspect')); var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location.indexOf(LOCATION) === 0; })[0]; app = inspect.apps.filter(function (a) { return a.location.indexOf(LOCATION) === 0; })[0];
expect(app).to.be.an('object'); expect(app).to.be.an('object');
} }
function pageLoaded() { async function login(accessKey='minioadmin', secretKey='minioadmin') {
return browser.wait(until.elementLocated(By.className('page-load pl-0 pl-1')), TEST_TIMEOUT); await browser.get(`https://${app.fqdn}/login`);
await waitForElement(By.id('accessKey'));
await browser.findElement(By.id('accessKey')).sendKeys(accessKey);
await browser.findElement(By.id('secretKey')).sendKeys(secretKey);
await browser.findElement(By.xpath('//button[contains(text(), "Login")]')).click();
await waitForElement(By.xpath('//span[contains(text(), "Buckets")]'));
await delay(5000);
} }
function visible(selector) { async function logout() {
return browser.wait(until.elementLocated(selector), TEST_TIMEOUT).then(function () { await browser.get(`https://${app.fqdn}/`);
return browser.wait(until.elementIsVisible(browser.findElement(selector)), TEST_TIMEOUT); await waitForElement(By.xpath('//span[contains(text(), "Buckets")]'));
}); await browser.findElement(By.xpath('//div/span[contains(text(), "Logout")]')).click();
await waitForElement(By.id('accessKey'));
} }
function login(accessKey, secretKey, callback) { async function addBucket() {
browser.manage().deleteAllCookies(); await browser.get(`https://${app.fqdn}/buckets`);
browser.get('https://' + app.fqdn).then(function () { await waitForElement(By.xpath('//button/span[text()="Create Bucket"]'));
return visible(By.id('accessKey')); await browser.findElement(By.xpath('//button/span[text()="Create Bucket"]')).click();
}).then(function () { await browser.sleep(2000);
return browser.findElement(By.id('accessKey')).sendKeys(accessKey); await browser.findElement(By.xpath('//input[@id="bucket-name"]')).sendKeys(BUCKET);
}).then(function () { await browser.findElement(By.xpath('//button[text()="Create Bucket"]')).click();
return browser.findElement(By.id('secretKey')).sendKeys(secretKey); await waitForElement(By.xpath(`//a[contains(text(), "${BUCKET}")]`));
}).then(function () { await delay(5000);
// return browser.findElement(By.className('lw-btn')).click();
return browser.findElement(By.tagName('form')).submit();
}).then(function () {
return browser.wait(until.elementLocated(By.id('top-right-menu')), TEST_TIMEOUT);
}).then(function () {
callback();
});
} }
function logout(callback) { async function checkBucket() {
browser.get('https://' + app.fqdn); await browser.get(`https://${app.fqdn}/buckets`);
await waitForElement(By.xpath(`//h1[contains(text(), "${BUCKET}")]`));
pageLoaded().then(function () {
return visible(By.id('top-right-menu'));
}).then(function () {
return browser.findElement(By.id('top-right-menu')).click();
}).then(function () {
if (app.manifest.version === '1.137.0') {
return visible(By.xpath('//*[text()="Sign Out "]'));
} else {
return visible(By.xpath('//*[contains(text(), "Logout")]'));
}
}).then(function () {
if (app.manifest.version === '1.137.0') {
return browser.findElement(By.xpath('//*[text()="Sign Out "]')).click();
} else {
return browser.findElement(By.xpath('//*[contains(text(),"Logout")]')).click();
}
}).then(function () {
return browser.wait(until.elementLocated(By.id('accessKey')), TEST_TIMEOUT);
}).then(function () {
callback();
});
} }
function addBucket(callback) { async function checkRedirect() {
browser.get('https://' + app.fqdn); const response = await superagent.get(`https://${app.secondaryDomains[0].fqdn}`).set('User-Agent', 'Mozilla/5.0').redirects(0).ok(() => true);
expect(response.status).to.be(307);
pageLoaded().then(function () { expect(response.headers.location).to.be(`https://${app.fqdn}`);
return visible(By.className('fa-plus'));
}).then(function () {
return browser.findElement(By.className('fa-plus')).click();
}).then(function () {
const c = 'fa-hdd';
return visible(By.className(c));
}).then(function () {
const c = 'fa-hdd';
return browser.findElement(By.className(c)).click();
}).then(function () {
return visible(By.xpath('//*[@class="modal-body"]/form/div/input'));
}).then(function () {
return browser.findElement(By.xpath('//*[@class="modal-body"]/form/div/input')).sendKeys(BUCKET);
}).then(function () {
return browser.findElement(By.xpath('//*[@class="modal-body"]/form')).submit();
}).then(function () {
return visible(By.xpath('//*[@class="main"]/a[text()="' + BUCKET + '"]'));
}).then(function () {
callback();
});
} }
function checkBucket(callback) { async function checkApi() {
browser.get('https://' + app.fqdn); const response = await superagent.get(`https://${app.secondaryDomains[0].fqdn}`).ok(() => true);
expect(response.status).to.be(403);
pageLoaded().then(function () { expect(response.body.toString('utf8')).to.contain('<Code>AccessDenied</Code>');
return browser.findElement(By.xpath(`//a[contains(text(), ${BUCKET})]`));
}).then(function () {
callback();
});
}
function openSettings(callback) {
browser.get('https://' + app.fqdn);
pageLoaded().then(function () {
return visible(By.id('top-right-menu'));
}).then(function () {
return browser.findElement(By.id('top-right-menu')).click();
}).then(function () {
return visible(By.xpath('//*[contains(text(), "Change Password")]'));
}).then(function () {
return browser.findElement(By.xpath('//*[contains(text(),"Change Password")]')).click();
}).then(function () {
return browser.wait(until.elementLocated(By.xpath('//*[contains(text(), "Change Password")]')), TEST_TIMEOUT);
}).then(function () {
callback();
});
} }
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); }); xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
it('install app', function () { execSync('cloudron install --location ' + LOCATION, EXEC_ARGS); }); it('install app', async function () {
execSync(`cloudron install --location ${LOCATION} --secondary-domains API_SERVER_DOMAIN=${LOCATION}-api`, EXEC_ARGS);
await delay(10000);
});
it('can get app information', getAppInfo); it('can get app information', getAppInfo);
it('can login', login.bind(null, 'minioadmin', 'minioadmin')); it('can login', login.bind(null, 'minioadmin', 'minioadmin'));
it('can add bucket', addBucket); it('can add bucket', addBucket);
it('can open settings', openSettings);
it('can logout', logout); it('can logout', logout);
it('does redirect', checkRedirect);
it('check api', checkApi);
it('can change credentials', function () { it('can change credentials', async function () {
execSync(`cloudron exec --app ${app.id} -- /app/code/minio-credentials set minioakey minioskey`, EXEC_ARGS); let data = fs.readFileSync(path.join(__dirname, '../env.sh'), 'utf8');
data = data
.replace(/MINIO_ROOT_USER=.*/, 'MINIO_ROOT_USER=minioakey')
.replace(/MINIO_ROOT_PASSWORD=.*/, 'MINIO_ROOT_PASSWORD=minioskey');
fs.writeFileSync('/tmp/env.sh', data);
execSync(`cloudron push --app ${app.id} /tmp/env.sh /app/data/env.sh`, EXEC_ARGS);
execSync(`cloudron restart --app ${app.id}`, EXEC_ARGS);
await delay(10000);
}); });
it('can restart app', function () { execSync(`cloudron restart --app ${app.id}`, EXEC_ARGS); }); it('can restart app', function () { execSync(`cloudron restart --app ${app.id}`, EXEC_ARGS); });
@@ -168,30 +124,37 @@ describe('Application life cycle test', function () {
it('can login', login.bind(null, 'minioakey', 'minioskey')); it('can login', login.bind(null, 'minioakey', 'minioskey'));
it('has bucket', checkBucket); it('has bucket', checkBucket);
it('can logout', logout); it('can logout', logout);
it('does redirect', checkRedirect);
it('check api', checkApi);
it('backup app', function () { execSync('cloudron backup create --app ' + app.id, EXEC_ARGS); }); it('backup app', function () { execSync('cloudron backup create --app ' + app.id, EXEC_ARGS); });
it('restore app', function () { it('restore app', async function () {
const backups = JSON.parse(execSync(`cloudron backup list --raw --app ${app.id}`)); const backups = JSON.parse(execSync(`cloudron backup list --raw --app ${app.id}`));
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS);
execSync('cloudron install --location ' + LOCATION, EXEC_ARGS); execSync('cloudron install --location ' + LOCATION, EXEC_ARGS);
getAppInfo(); getAppInfo();
execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, EXEC_ARGS); execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, EXEC_ARGS);
await delay(10000);
}); });
it('can login', login.bind(null, 'minioakey', 'minioskey')); it('can login', login.bind(null, 'minioakey', 'minioskey'));
it('has bucket', checkBucket); it('has bucket', checkBucket);
it('can open settings', openSettings);
it('can logout', logout); it('can logout', logout);
it('does redirect', checkRedirect);
it('check api', checkApi);
it('move to different location', function () { it('move to different location', async function () {
browser.manage().deleteAllCookies(); browser.manage().deleteAllCookies();
execSync('cloudron configure --location ' + LOCATION + '2', EXEC_ARGS); execSync('cloudron configure --location ' + LOCATION + '2', EXEC_ARGS);
await delay(10000);
}); });
it('can get app information', getAppInfo); it('can get app information', getAppInfo);
it('can login', login.bind(null, 'minioakey', 'minioskey')); it('can login', login.bind(null, 'minioakey', 'minioskey'));
it('has bucket', checkBucket); it('has bucket', checkBucket);
it('can logout', logout); it('can logout', logout);
it('does redirect', checkRedirect);
it('check api', checkApi);
it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); }); it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); });
@@ -202,12 +165,15 @@ describe('Application life cycle test', function () {
it('can login', login.bind(null, 'minioadmin', 'minioadmin')); it('can login', login.bind(null, 'minioadmin', 'minioadmin'));
it('can add buckets', addBucket); it('can add buckets', addBucket);
it('can logout', logout); it('can logout', logout);
it('can update', function () { execSync('cloudron update --app ' + LOCATION, EXEC_ARGS); }); it('can update', function () { execSync(`cloudron update --app ${LOCATION}`, EXEC_ARGS); });
it('can configure', function () { execSync(`cloudron configure --app ${LOCATION} --location ${LOCATION} --secondary-domains API_SERVER_DOMAIN=${LOCATION}-api`, EXEC_ARGS); });
it('can get app information', getAppInfo); it('can get app information', getAppInfo);
it('can login', login.bind(null, 'minioadmin', 'minioadmin')); it('can login', login.bind(null, 'minioadmin', 'minioadmin'));
it('has bucket', checkBucket); it('has bucket', checkBucket);
it('can logout', logout); it('can logout', logout);
it('does redirect', checkRedirect);
it('check api', checkApi);
it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); }); it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); });
}); });