files.com 1.1.788 → 1.1.790
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +53 -11
- data/_VERSION +1 -1
- data/docs/site.md +4 -0
- data/lib/files.com/models/site.rb +7 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7263d26603506f148888100768823d9809d751828ac46ba60fc000784aab81e5
|
|
4
|
+
data.tar.gz: 99dfd849c08d45a7a651e52e30d4818a37901cf7bc6a79adb7515bbd3ee922bd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 91f17db1b746899e6ab064bdd164479d7a9aa91213d92a3b65b4f34e1f13eddacee743bc000320974dacf803411f88b5a2ddc03ab55f66c5125f8e1ee0e93c0e
|
|
7
|
+
data.tar.gz: 44115f507faa08f0d1cbecc00e779a0a2514e8449abf9e9f1f418db26d0cb48bc6c85e3e0dac8b7ca4076c9fbbf812052e51917e2c09e42a7158062cc0b7c221
|
data/README.md
CHANGED
|
@@ -833,8 +833,8 @@ end
|
|
|
833
833
|
|
|
834
834
|
Files.com publishes a mock Files.com API server, which is useful for testing your use of the Files.com
|
|
835
835
|
SDKs and other direct integrations against the Files.com API in an integration test environment.
|
|
836
|
-
It never checks credentials: send any placeholder API key, and never use
|
|
837
|
-
with it.
|
|
836
|
+
It never checks credentials: send any placeholder API key, such as `YOUR_API_KEY`, and never use
|
|
837
|
+
real Files.com credentials with it.
|
|
838
838
|
|
|
839
839
|
The server has two modes, chosen when it starts:
|
|
840
840
|
|
|
@@ -847,10 +847,38 @@ The server has two modes, chosen when it starts:
|
|
|
847
847
|
stall or lose their connection on purpose. Requests it does not simulate fail with a clear error
|
|
848
848
|
instead of returning an example response.
|
|
849
849
|
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
850
|
+
### Quick Start with Docker
|
|
851
|
+
|
|
852
|
+
With [Docker](https://docs.docker.com/get-docker/) installed, start the published image from
|
|
853
|
+
[Docker Hub](https://hub.docker.com/r/filescom/files-mock-server) with the command shown. It runs
|
|
854
|
+
legacy mode at `http://127.0.0.1:4041`, reachable from your machine only: point your integration's
|
|
855
|
+
Files.com API base URL there and use a placeholder API key. Stop it with Ctrl+C; `--rm` removes its
|
|
856
|
+
container.
|
|
857
|
+
|
|
858
|
+
The published image is built for `linux/amd64` only, so the command asks for that platform;
|
|
859
|
+
without it, Docker on a machine of another architecture, such as an Apple silicon Mac, looks for
|
|
860
|
+
an image the tag does not have. The `latest` tag moves to whichever server was published last,
|
|
861
|
+
and `--pull=always` fetches it again each time, so it need not include simulation mode. To run
|
|
862
|
+
simulation mode, build the image from the source as below.
|
|
863
|
+
|
|
864
|
+
```shell title="Start the Mock Server with Docker"
|
|
865
|
+
docker run --platform linux/amd64 --rm --pull=always -p 127.0.0.1:4041:4041 filescom/files-mock-server:latest
|
|
866
|
+
|
|
867
|
+
## In another terminal, with a placeholder API key:
|
|
868
|
+
curl -H "X-FilesAPI-Key: YOUR_API_KEY" http://127.0.0.1:4041/api/rest/v1/users
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
### Simulation Mode in Docker
|
|
872
|
+
|
|
873
|
+
To run exactly the server the source's README describes, simulation mode included, build the image
|
|
874
|
+
from a checkout of the source on [GitHub](https://github.com/Files-com/files-mock-server) and run
|
|
875
|
+
it by the image ID you record with your test results. Only `linux/amd64` builds of the source have
|
|
876
|
+
been checked, so both commands ask for that platform.
|
|
877
|
+
|
|
878
|
+
Simulation mode listens only on loopback unless told otherwise, so the command binds it to the
|
|
879
|
+
container's interfaces with `-b tcp://0.0.0.0:4041` and publishes the port on your machine's
|
|
880
|
+
loopback address only. `FILES_MOCK_TRANSFER_ORIGIN` tells it the address your tests use, so the
|
|
881
|
+
upload and download URLs it returns point at the published port.
|
|
854
882
|
|
|
855
883
|
Simulation mode keeps its state only in the server process. Its control endpoints under
|
|
856
884
|
`/__files_mock/v1` report when the server is ready, reset it with your fixtures, add fault rules
|
|
@@ -858,13 +886,27 @@ and return the journal of the requests it received. It refuses work over its lim
|
|
|
858
886
|
truncating it. The README in the source describes all of these, the operations it simulates and
|
|
859
887
|
how to configure its limits.
|
|
860
888
|
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
889
|
+
```shell title="Simulation Mode from the Source"
|
|
890
|
+
## In a checkout of the source:
|
|
891
|
+
docker build --platform linux/amd64 -t files-mock-server:local .
|
|
892
|
+
image=$(docker image inspect --format '{{.Id}}' files-mock-server:local)
|
|
893
|
+
echo "$image" # record this ID with your test results
|
|
894
|
+
docker run --platform linux/amd64 --rm -e FILES_MOCK_MODE=simulation \
|
|
895
|
+
-e FILES_MOCK_TRANSFER_ORIGIN=http://127.0.0.1:40410 \
|
|
896
|
+
-p 127.0.0.1:40410:4041 "$image" -b tcp://0.0.0.0:4041
|
|
897
|
+
|
|
898
|
+
## In another terminal:
|
|
899
|
+
curl http://127.0.0.1:40410/__files_mock/v1/ready
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
### From the Source with Ruby
|
|
864
903
|
|
|
865
|
-
|
|
904
|
+
Start the server from its source with Ruby and Bundler. `FILES_MOCK_MODE` is read once at startup:
|
|
905
|
+
leaving it unset or setting it to `legacy` starts legacy mode, `simulation` starts simulation mode,
|
|
906
|
+
and any other value stops startup with an error. Legacy mode listens on port 4041 on all IPv4
|
|
907
|
+
interfaces, and simulation mode on `127.0.0.1:4041`.
|
|
866
908
|
|
|
867
|
-
```shell title="Start the Mock Server"
|
|
909
|
+
```shell title="Start the Mock Server with Ruby"
|
|
868
910
|
bundle install
|
|
869
911
|
|
|
870
912
|
## Legacy mode
|
data/_VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.1.
|
|
1
|
+
1.1.790
|
data/docs/site.md
CHANGED
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
"calculate_file_checksums_md5": true,
|
|
70
70
|
"calculate_file_checksums_sha1": true,
|
|
71
71
|
"calculate_file_checksums_sha256": true,
|
|
72
|
+
"child_site_folder_admins_can_see_parent_site_directory": true,
|
|
72
73
|
"uploads_via_email_authentication": true,
|
|
73
74
|
"color2_left": "#0066a7",
|
|
74
75
|
"color2_link": "#d34f5d",
|
|
@@ -420,6 +421,7 @@
|
|
|
420
421
|
* `calculate_file_checksums_md5` (boolean): Calculate MD5 checksums for files?
|
|
421
422
|
* `calculate_file_checksums_sha1` (boolean): Calculate SHA1 checksums for files?
|
|
422
423
|
* `calculate_file_checksums_sha256` (boolean): Calculate SHA256 checksums for files?
|
|
424
|
+
* `child_site_folder_admins_can_see_parent_site_directory` (boolean): If true, administrators on this site's Child Sites, including Folder Admins, can list this site's Default Workspace users and groups and grant them folder permissions and notifications on Child Site paths.
|
|
423
425
|
* `uploads_via_email_authentication` (boolean): Require email authentication, virus, and spam checks for incoming emails to Inboxes and Incoming Email Automations in every Workspace on this site?
|
|
424
426
|
* `color2_left` (string): Page link and button color
|
|
425
427
|
* `color2_link` (string): Top bar link color
|
|
@@ -728,6 +730,7 @@ Files::Site.update(
|
|
|
728
730
|
group_admins_can_bypass_user_lifecycle_rules: false,
|
|
729
731
|
group_admins_can_reset_passwords: false,
|
|
730
732
|
group_admins_can_set_user_password: false,
|
|
733
|
+
child_site_folder_admins_can_see_parent_site_directory: false,
|
|
731
734
|
bundle_recipient_blacklist_free_email_domains: false,
|
|
732
735
|
bundle_recipient_blacklist_domains: ["example"],
|
|
733
736
|
admins_bypass_locked_subfolders: false,
|
|
@@ -917,6 +920,7 @@ Files::Site.update(
|
|
|
917
920
|
* `group_admins_can_bypass_user_lifecycle_rules` (boolean): Allow group admins to exempt users in their groups from lifecycle rules
|
|
918
921
|
* `group_admins_can_reset_passwords` (boolean): Allow group admins to reset passwords for users in their groups
|
|
919
922
|
* `group_admins_can_set_user_password` (boolean): Allow group admins to set password authentication method
|
|
923
|
+
* `child_site_folder_admins_can_see_parent_site_directory` (boolean): If true, administrators on this site's Child Sites, including Folder Admins, can list this site's Default Workspace users and groups and grant them folder permissions and notifications on Child Site paths.
|
|
920
924
|
* `bundle_recipient_blacklist_free_email_domains` (boolean): Disallow free email domains for Bundle/Inbox recipients?
|
|
921
925
|
* `bundle_recipient_blacklist_domains` (array(string)): List of email domains to disallow when entering a Bundle/Inbox recipients
|
|
922
926
|
* `admins_bypass_locked_subfolders` (boolean): Allow admins to bypass the locked subfolders setting.
|
|
@@ -223,6 +223,11 @@ module Files
|
|
|
223
223
|
@attributes[:calculate_file_checksums_sha256]
|
|
224
224
|
end
|
|
225
225
|
|
|
226
|
+
# boolean - If true, administrators on this site's Child Sites, including Folder Admins, can list this site's Default Workspace users and groups and grant them folder permissions and notifications on Child Site paths.
|
|
227
|
+
def child_site_folder_admins_can_see_parent_site_directory
|
|
228
|
+
@attributes[:child_site_folder_admins_can_see_parent_site_directory]
|
|
229
|
+
end
|
|
230
|
+
|
|
226
231
|
# boolean - Require email authentication, virus, and spam checks for incoming emails to Inboxes and Incoming Email Automations in every Workspace on this site?
|
|
227
232
|
def uploads_via_email_authentication
|
|
228
233
|
@attributes[:uploads_via_email_authentication]
|
|
@@ -1160,6 +1165,7 @@ module Files
|
|
|
1160
1165
|
# group_admins_can_bypass_user_lifecycle_rules - boolean - Allow group admins to exempt users in their groups from lifecycle rules
|
|
1161
1166
|
# group_admins_can_reset_passwords - boolean - Allow group admins to reset passwords for users in their groups
|
|
1162
1167
|
# group_admins_can_set_user_password - boolean - Allow group admins to set password authentication method
|
|
1168
|
+
# child_site_folder_admins_can_see_parent_site_directory - boolean - If true, administrators on this site's Child Sites, including Folder Admins, can list this site's Default Workspace users and groups and grant them folder permissions and notifications on Child Site paths.
|
|
1163
1169
|
# bundle_recipient_blacklist_free_email_domains - boolean - Disallow free email domains for Bundle/Inbox recipients?
|
|
1164
1170
|
# bundle_recipient_blacklist_domains - array(string) - List of email domains to disallow when entering a Bundle/Inbox recipients
|
|
1165
1171
|
# admins_bypass_locked_subfolders - boolean - Allow admins to bypass the locked subfolders setting.
|
|
@@ -1360,6 +1366,7 @@ module Files
|
|
|
1360
1366
|
raise InvalidParameterError.new("Bad parameter: group_admins_can_bypass_user_lifecycle_rules must be a single value, not #{params[:group_admins_can_bypass_user_lifecycle_rules].class}") if [ Array, Hash ].any? { |klass| params[:group_admins_can_bypass_user_lifecycle_rules].is_a?(klass) }
|
|
1361
1367
|
raise InvalidParameterError.new("Bad parameter: group_admins_can_reset_passwords must be a single value, not #{params[:group_admins_can_reset_passwords].class}") if [ Array, Hash ].any? { |klass| params[:group_admins_can_reset_passwords].is_a?(klass) }
|
|
1362
1368
|
raise InvalidParameterError.new("Bad parameter: group_admins_can_set_user_password must be a single value, not #{params[:group_admins_can_set_user_password].class}") if [ Array, Hash ].any? { |klass| params[:group_admins_can_set_user_password].is_a?(klass) }
|
|
1369
|
+
raise InvalidParameterError.new("Bad parameter: child_site_folder_admins_can_see_parent_site_directory must be a single value, not #{params[:child_site_folder_admins_can_see_parent_site_directory].class}") if [ Array, Hash ].any? { |klass| params[:child_site_folder_admins_can_see_parent_site_directory].is_a?(klass) }
|
|
1363
1370
|
raise InvalidParameterError.new("Bad parameter: bundle_recipient_blacklist_free_email_domains must be a single value, not #{params[:bundle_recipient_blacklist_free_email_domains].class}") if [ Array, Hash ].any? { |klass| params[:bundle_recipient_blacklist_free_email_domains].is_a?(klass) }
|
|
1364
1371
|
raise InvalidParameterError.new("Bad parameter: bundle_recipient_blacklist_domains must be an Array") if !params[:bundle_recipient_blacklist_domains].nil? and !params[:bundle_recipient_blacklist_domains].is_a?(Array)
|
|
1365
1372
|
raise InvalidParameterError.new("Bad parameter: admins_bypass_locked_subfolders must be a single value, not #{params[:admins_bypass_locked_subfolders].class}") if [ Array, Hash ].any? { |klass| params[:admins_bypass_locked_subfolders].is_a?(klass) }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: files.com
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.790
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- files.com
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: addressable
|