github.com/cs3org/reva/v2@v2.27.7/tests/oc-integration-tests/drone/gateway.toml (about)

     1  # This config file will start a reva service that:
     2  # - serves as a gateway for all CS3 requests
     3  # - looks up the storageprovider using a storageregistry
     4  # - looks up the authprovider using an authregistry
     5  # - serves the gateway on grpc port 19000
     6  # - serves http datagateway on port 19001
     7  #   - /data - datagateway: file up and download
     8  
     9  [shared]
    10  jwt_secret = "Pive-Fumkiu4"
    11  gatewaysvc = "localhost:19000"
    12  
    13  [grpc]
    14  address = "0.0.0.0:19000"
    15  
    16  [grpc.services.gateway]
    17  # registries
    18  authregistrysvc = "localhost:19000"
    19  storageregistrysvc = "localhost:19000"
    20  # user metadata
    21  preferencessvc = "localhost:18000"
    22  userprovidersvc = "localhost:18000"
    23  groupprovidersvc = "localhost:18000"
    24  # an approvider lives on "localhost:18000" as well, see users.toml
    25  # sharing
    26  usershareprovidersvc = "localhost:17000"
    27  publicshareprovidersvc = "localhost:17000"
    28  # ocm
    29  ocmcoresvc = "localhost:14000"
    30  ocmshareprovidersvc = "localhost:14000"
    31  ocminvitemanagersvc = "localhost:14000"
    32  ocmproviderauthorizersvc = "localhost:14000"
    33  # permissions
    34  permissionssvc = "localhost:10000"
    35  # other
    36  commit_share_to_storage_grant = true
    37  share_folder = "Shares"
    38  datagateway = "http://localhost:19001/data"
    39  transfer_shared_secret = "replace-me-with-a-transfer-secret" # for direct uploads
    40  transfer_expires = 6 # give it a moment
    41  #disable_home_creation_on_login = true
    42  link_grants_file = "/drone/src/tmp/reva/link_grants_file.json"
    43  
    44  [grpc.services.authregistry]
    45  driver = "static"
    46  
    47  [grpc.services.authregistry.drivers.static.rules]
    48  publicshares = "localhost:17000" # started with the shares.toml
    49  basic = "localhost:18000" # started with the users.toml
    50  bearer = "localhost:20099" # started with the frontend.toml
    51  machine = "localhost:21000" # started with the machine-auth.toml
    52  
    53  [grpc.services.storageregistry]
    54  driver = "spaces"
    55  
    56  [grpc.services.storageregistry.drivers.spaces]
    57  home_template = "/users/{{.Id.OpaqueId}}"
    58  
    59  ## obviously, we do not want to define a rule for every user and space, which is why we can define naming rules:
    60  [grpc.services.storageregistry.drivers.spaces.providers."localhost:11000"]
    61  providerid = "1284d238-aa92-42ce-bdc4-0b0000009157"
    62  [grpc.services.storageregistry.drivers.spaces.providers."localhost:11000".spaces]
    63  "personal" = { "mount_point" = "/users", "path_template" = "/users/{{.Space.Owner.Id.OpaqueId}}" }
    64  
    65  ## users can be spread over multiple providers like this:
    66  #"localhost:11000" = {"mount_path" = "/users/[0-9]", "space_type" = "personal", "path_template" = "/users/{{.Space.Owner.Id.OpaqueId}}", "description" = "personal spaces 0-9"}
    67  #"localhost:11010" = {"mount_path" = "/users/[a-f]", "space_type" = "personal", "path_template" = "/users/{{.Space.Owner.Id.OpaqueId}}", "description" = "personal spaces a-f"}
    68  
    69  ## the virtual /Shares folder of every user is routed like this:
    70  ## whenever the path matches the pattern /users/{{.CurrentUser.Id.OpaqueId}}/Shares we forward requests to the sharesstorageprovider
    71  [grpc.services.storageregistry.drivers.spaces.providers."localhost:14000"]
    72  providerid = "a0ca6a90-a365-4782-871e-d44447bbc668"
    73  [grpc.services.storageregistry.drivers.spaces.providers."localhost:14000".spaces]
    74  "virtual" = { "mount_point" = "/users/{{.CurrentUser.Id.OpaqueId}}/Shares" }
    75  "grant" = { "mount_point" = "." }
    76  "mountpoint" = { "mount_point" = "/users/{{.CurrentUser.Id.OpaqueId}}/Shares", "path_template" = "/users/{{.CurrentUser.Id.OpaqueId}}/Shares/{{.Space.Name}}" }
    77  
    78  ## An alternative would be used to mount shares outside of the users home:
    79  #"localhost:14000" = {"mount_path" = "/shares", "space_type" = "share", "path_template" = "/shares/{{.Space.Name}}", "description" = "shares"}
    80  
    81  ## While public shares are mounted at /public logged in end will should never see that path because it is only created by the spaces registry when
    82  ## a public link is accessed.
    83  [grpc.services.storageregistry.drivers.spaces.providers."localhost:13000"]
    84  providerid = "7993447f-687f-490d-875c-ac95e89a62a4"
    85  [grpc.services.storageregistry.drivers.spaces.providers."localhost:13000".spaces]
    86  "grant" = { "mount_point" = "." }
    87  "mountpoint" = { "mount_point" = "/public", "path_template" = "/public/{{.Space.Root.OpaqueId}}" }
    88  
    89  [http]
    90  address = "0.0.0.0:19001"
    91  
    92  [http.services.datagateway]
    93  transfer_shared_secret = "replace-me-with-a-transfer-secret"