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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e685f1474ddba361a9577273f6b22c995cca0168f798836efb1d6051c7521c8a
4
- data.tar.gz: b3f5fde464659237dd56143436086a53cfb3133128e7c9a8a2c626234cd23922
3
+ metadata.gz: 7263d26603506f148888100768823d9809d751828ac46ba60fc000784aab81e5
4
+ data.tar.gz: 99dfd849c08d45a7a651e52e30d4818a37901cf7bc6a79adb7515bbd3ee922bd
5
5
  SHA512:
6
- metadata.gz: f0a0f5c071bd1bd74046eba571ff7ea2b83926510f61013174bd7772251e03cca58208fcd3a82c884ba1785e8130d9f7f4330802241d6668374ec5cefcfcea63
7
- data.tar.gz: a452e9ef9a1870b2ffb6d066f5ca76050bb6a1301fd8d77f959e73c57aae116739412b1b96534ce984b9265dc4afdf5d24510ba42b8c33abf68eb13e94a99e6a
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 real Files.com credentials
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
- Start the server from its source with Ruby and Bundler. `FILES_MOCK_MODE` is read once at startup:
851
- leaving it unset or setting it to `legacy` starts legacy mode, `simulation` starts simulation mode,
852
- and any other value stops startup with an error. Legacy mode listens on port 4041 on all IPv4
853
- interfaces, and simulation mode on `127.0.0.1:4041`.
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
- Download the server as a Docker image via [Docker Hub](https://hub.docker.com/r/filescom/files-mock-server).
862
- The image's `latest` tag moves to whichever server was published last, so it need not include
863
- simulation mode; to run exactly the server the README describes, build the image from the source.
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
- The Source Code is also available on [GitHub](https://github.com/Files-com/files-mock-server).
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.788
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.788
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-12 00:00:00.000000000 Z
11
+ date: 2026-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable