Proxy Service Configuration

Introduction

The Infinite Scale Proxy service acts as an API Gateway and routes requests to the correct target service. It also provides standard proxy services.

Services are under development because of the beta badge 1 stage of Infinite Scale. Their service, environment variables and configuration may change. Forgive us if there are mistakes or information is missing. Feel free to report issues and we’ll take care of them as soon as possible on github. You want to fix them yourself? We’d appreciate that even more.

Configuration

Environment Variables

The proxy extension is configured via the following environment variables:

Environment variables for the proxy extension
Name Type Default Value Description

OCIS_TRACING_ENABLED
PROXY_TRACING_ENABLED

bool

false

Activates tracing.

OCIS_TRACING_TYPE
PROXY_TRACING_TYPE

string

The type of tracing. Defaults to "", which is the same as "jaeger". Allowed tracing types are "jaeger" and "" as of now.

OCIS_TRACING_ENDPOINT
PROXY_TRACING_ENDPOINT

string

The endpoint of the tracing agent.

OCIS_TRACING_COLLECTOR
PROXY_TRACING_COLLECTOR

string

The HTTP endpoint for sending spans directly to a collector, i.e. http://jaeger-collector:14268/api/traces. Only used if the tracing endpoint is unset.

OCIS_LOG_LEVEL
PROXY_LOG_LEVEL

string

The log level. Valid values are: "panic", "fatal", "error", "warn", "info", "debug", "trace".

OCIS_LOG_PRETTY
PROXY_LOG_PRETTY

bool

false

Activates pretty log output.

OCIS_LOG_COLOR
PROXY_LOG_COLOR

bool

false

Activates colorized log output.

OCIS_LOG_FILE
PROXY_LOG_FILE

string

The path to the log file. Activates logging to this file if set.

PROXY_DEBUG_ADDR

string

127.0.0.1:9205

Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed.

PROXY_DEBUG_TOKEN

string

Token to secure the metrics endpoint

PROXY_DEBUG_PPROF

bool

false

Enables pprof, which can be used for profiling

PROXY_DEBUG_ZPAGES

bool

false

Enables zpages, which can be used for collecting and viewing in-memory traces.

PROXY_HTTP_ADDR

string

0.0.0.0:9200

The bind address of the HTTP service.

PROXY_HTTP_ROOT

string

/

Subdirectory that serves as the root for this HTTP service.

PROXY_TRANSPORT_TLS_CERT

string

~/.ocis/proxy/server.crt

PROXY_TRANSPORT_TLS_KEY

string

~/.ocis/proxy/server.key

PROXY_TLS

bool

true

REVA_GATEWAY

string

127.0.0.1:9142

The CS3 gateway endpoint.

OCIS_URL
OCIS_OIDC_ISSUER
PROXY_OIDC_ISSUER

string

https://localhost:9200

URL of the OIDC issuer. It defaults to URL of the builtin IDP.

OCIS_INSECURE
PROXY_OIDC_INSECURE

bool

true

Disable TLS certificate validation for connections to the IDP. (not recommended for production environments.

PROXY_OIDC_USERINFO_CACHE_SIZE

int

1024

Cache size for oidc user info.

PROXY_OIDC_USERINFO_CACHE_TTL

int

10

Max TTL for the oidc user info cache.

OCIS_JWT_SECRET
PROXY_JWT_SECRET

string

The secret to mint and validate jwt tokens.

PROXY_ENABLE_PRESIGNEDURLS

bool

true

Allow ocs to get a signing key to sign requests.

PROXY_ACCOUNT_BACKEND_TYPE

string

cs3

Account backend the proxy should use, currenly only 'cs3' is possible here.

PROXY_USER_OIDC_CLAIM

string

email

The name of an OpenID Connect claim that should be used for resolving users with the account backend. Currently defaults to 'email'.

PROXY_USER_CS3_CLAIM

string

mail

The name of a CS3 user attribute (claim) that should be mapped to the 'user_oidc_claim'. Currently defaults to 'mail' (other possible values are: 'username', 'displayname')

OCIS_MACHINE_AUTH_API_KEY
PROXY_MACHINE_AUTH_API_KEY

string

Machine auth API key used for accessing the 'auth-machine' service to impersonate users.

PROXY_AUTOPROVISION_ACCOUNTS

bool

false

Set this to 'true' to automatically provsion users that do not yet exist in the users service on-demand upon first signin. To use this a write-enabled libregraph user backend needs to be setup an running.

PROXY_ENABLE_BASIC_AUTH

bool

false

Set this to true to enable 'basic' (username/password) authentication.

PROXY_INSECURE_BACKENDS

bool

false

Disable TLS certificate validation for all http backend connections.

Since Version: + added, - deprecated

YAML Example

# Autogenerated
# Filename: proxy-config-example.yaml

tracing:
  enabled: false
  type: ""
  endpoint: ""
  collector: ""
log:
  level: ""
  pretty: false
  color: false
  file: ""
debug:
  addr: 127.0.0.1:9205
  token: ""
  pprof: false
  zpages: false
http:
  addr: 0.0.0.0:9200
  root: /
  tls_cert: ~/.ocis/proxy/server.crt
  tls_key: ~/.ocis/proxy/server.key
  tls: true
reva:
  address: 127.0.0.1:9142
policies:
- name: ocis
  routes:
  - endpoint: /
    backend: http://localhost:9100
  - endpoint: /.well-known/
    backend: http://localhost:9130
  - endpoint: /konnect/
    backend: http://localhost:9130
  - endpoint: /signin/
    backend: http://localhost:9130
  - endpoint: /archiver
    backend: http://localhost:9140
  - type: regex
    endpoint: /ocs/v[12].php/cloud/user/signing-key
    backend: http://localhost:9110
  - endpoint: /ocs/
    backend: http://localhost:9140
  - type: query
    endpoint: /remote.php/?preview=1
    backend: http://localhost:9115
  - method: REPORT
    endpoint: /remote.php/dav/
    backend: http://localhost:9115
  - type: query
    endpoint: /dav/?preview=1
    backend: http://localhost:9115
  - type: query
    endpoint: /webdav/?preview=1
    backend: http://localhost:9115
  - endpoint: /remote.php/
    service: com.owncloud.web.ocdav
  - endpoint: /dav/
    service: com.owncloud.web.ocdav
  - endpoint: /webdav/
    service: com.owncloud.web.ocdav
  - endpoint: /status
    service: com.owncloud.web.ocdav
  - endpoint: /status.php
    service: com.owncloud.web.ocdav
  - endpoint: /index.php/
    service: com.owncloud.web.ocdav
  - endpoint: /apps/
    service: com.owncloud.web.ocdav
  - endpoint: /data
    backend: http://localhost:9140
  - endpoint: /app/
    backend: http://localhost:9140
  - endpoint: /graph/
    backend: http://localhost:9120
  - endpoint: /graph-explorer
    backend: http://localhost:9135
  - endpoint: /api/v0/settings
    backend: http://localhost:9190
  - endpoint: /settings.js
    backend: http://localhost:9190
oidc:
  issuer: https://localhost:9200
  insecure: true
  user_info_cache:
    size: 1024
    ttl: 10
token_manager:
  jwt_secret: ""
policy_selector:
  static:
    policy: ocis
  claims: null
  regex: null
pre_signed_url:
  allowed_http_methods:
  - GET
  enabled: true
account_backend: cs3
user_oidc_claim: email
user_cs3_claim: mail
machine_auth_api_key: ""
auto_provision_accounts: false
enable_basic_auth: false
insecure_backends: false
auth_middleware:
  credentials_by_user_agent: {}