cozy.example.yaml
Rama master · réplica de lectura del repositorio original.
# This file contain an example of cozy-stack configuration file.
# It provides a description for all available fields to configure the stack.
#
# It is possible to pass environnment variable to this configuration using the
# template language of golang, delimited by "{{" and "}}". See:
#
# https://golang.org/pkg/text/template/.
#
# The env map is available in the ".Env" variable. For instance
# ".Env.COUCHDB_PASSPHRASE" will access to "COUCHDB_PASSPHRASE" environment
# variable. The template is evaluated at startup of the stack.
# server host - flags: --host
#
# Specifies on which IP/domain the server will listen on. It also defines which
# IP versions will be available (IPv4 and/or IPv6). The server will be available
# only on the IP version you have defined in host. For domains it will favour
# the IPv4 version if available.
#
# There are two values with custom behaviours:
# - "localhost" -> will listen on both "127.0.0.1" on IPv4 and "[::1]" on IPv6
# - "0.0.0.0" and "[::]" -> will listen on both "0.0.0.0" on IPv4 and "[::]" on IPv6
host: localhost
# server port - flags: --port -p
port: 8080
# how to structure the subdomains for apps - flags: --subdomains
# values:
# - nested, like https://<app>.<user>.<domain>/ (well suited for self-hosted with Let's Encrypt)
# - flat, like https://<user>-<app>.<domain>/ (easier when using wildcard TLS certificate)
subdomains: nested
# defines a list of assets that can be fetched via the /remote/:asset-name
# route.
remote_assets:
bank: https://myassetserver.com/remote_asset.json
# path to the directory with the assets - flags: --assets
# default is to use the assets packed in the binary
# assets: ""
# administration endpoint parameters. this endpoint should be protected
admin:
# server host - flags: --admin-host
host: localhost
# server port - flags: --admin-port
port: 6060
# secret file name containing the derived passphrase to access to the
# administration endpoint. this secret file can be generated using the `cozy-
# stack config passwd` command. this file should be located in the same path
# as the configuration file.
secret_filename: cozy-admin-passphrase
# vault contains keyfiles informations
# See https://docs.cozy.io/en/cozy-stack/cli/cozy-stack_config_gen-keys/
# to generate the keys
vault:
# the path to the key used to encrypt credentials
# credentials_encryptor_key: /path/to/key.enc
# the path to the key used to decrypt credentials
# credentials_decryptor_key: /path/to/key.dec
# file system parameters
fs:
# file system url - flags: --fs-url
# default url is the directory relative to the binary: ./storage
# url: file://localhost/var/lib/cozy
# url: swift://openstack/?UserName={{ .Env.OS_USERNAME }}&Password={{ .Env.OS_PASSWORD }}&ProjectName={{ .Env.OS_PROJECT_NAME }}&UserDomainName={{ .Env.OS_USER_DOMAIN_NAME }}&Timeout={{ .Env.GOSWIFT_TIMEOUT }}
# url: s3://{{ .Env.S3_ENDPOINT }}?access_key={{ .Env.S3_ACCESS_KEY }}&secret_key={{ .Env.S3_SECRET_KEY }}®ion={{ .Env.S3_REGION }}&use_ssl=true
# S3 buckets are created automatically by default. See docs/s3.md.
# To use pre-created buckets and optional connections per concrete bucket:
# s3:
# auto_create_buckets: false
# buckets:
# default:
# name: company-storage
# files:
# name: company-files
# url: s3://{{ .Env.S3_VFS_ENDPOINT }}?access_key={{ .Env.S3_VFS_ACCESS_KEY }}&secret_key={{ .Env.S3_VFS_SECRET_KEY }}®ion={{ .Env.S3_REGION }}
# exports:
# name: company-backups
# Swift FS can be used with advanced parameters to activate TLS properties.
# For using swift with https, you must use the "swift+https" scheme.
#
# root_ca: /ca-certificates.pem
# client_cert: /client_cert.pem
# client_key: /client_key
# pinned_key: 57c8ff33c9c0cfc3ef00e650a1cc910d7ee479a8bc509f6c9209a7c2a11399d6
# insecure_skip_validation: true
# can_query_info: true
# default_layout: 2 # 1 for layout v2 and 2 for layout v3
# auto_clean_trashed_after:
# context_a: 30D
# context_b: 3M
# versioning:
# max_number_of_versions_to_keep: 20
# min_delay_between_two_versions: 15m
# contexts:
# cozy_beta:
# max_number_of_versions_to_keep: 10
# min_delay_between_two_versions: 1h
# couchdb parameters
couchdb:
# CouchDB URL - flags: --couchdb-url
url: http://localhost:5984/
# CouchDB advanced parameters to activate TLS properties:
#
# root_ca: /ca-certificates.pem
# client_cert: /client_cert.pem
# client_key: /client_key
# pinned_key: 57c8ff33c9c0cfc3ef00e650a1cc910d7ee479a8bc509f6c9209a7c2a11399d6
# insecure_skip_validation: true
# Multiple CouchDB clusters:
# clusters:
# - url: http://couchdb1:5984/
# instance_creation: true
# - url: http://couchdb2:5984/
# instance_creation: false
# - url: http://couchdb3:5984/
# instance_creation: true
# jobs parameters to configure the job system
jobs:
# path to the imagemagick convert binary
# imagemagick_convert_cmd: convert
# path to the ghostscript binary
# ghostscript_cmd: gs
# Specify whether the given list of jobs is an allowlist or blocklist. In case
# of an allowlist, all jobs are deactivated by default and only the listed one
# are activated.
#
# allowlist: false
# workers individual configrations.
#
# For each worker type it is possible to configure the following fields:
# - concurrency: the maximum number of jobs executed in parallel. when set
# to zero, the worker is deactivated
# - max_exec_count: the maximum number of retries for one job in case of an
# error
# - timeout: the maximum amount of time allowed for one execution of a job
#
# List of available workers:
#
# - "clean-clients": delete unused OAuth clients
# - "drive-activity": publishing the activity digest of organization drives
# - "export": exporting data from a cozy instance
# - "import": importing data into a cozy instance
# - "konnector": launching konnectors
# - "service": launching services
# - "migrations": transforming a VFS with Swift to layout v3
# - "notes-save": saving notes to the VFS
# - "rag-index": send data to the RAG server for being indexed
# - "rag-query": send a query to the RAG server
# - "push": sending push notifications
# - "sms": sending SMS notifications
# - "sendmail": sending mails
# - "share-group": for cozy to cozy sharing
# - "share-replicate": idem
# - "share-track": idem
# - "share-upload": idem
# - "thumbnail": creatings and deleting thumbnails for images
# - "thumbnailck": generate missing thumbnails for all images
# - "trash-files": async deletion of files in the trash
# - "clean-old-trashed": deletion of old files and directories after some time
# - "unzip": unzipping tarball
# - "zip": creating a zip tarball
#
# When no configuration is given for a worker, a default configuration is
# used. When a false boolean value is given, the worker is deactivated.
#
# To deactivate all workers, the workers field can be set to "false" or
# "none".
workers:
# thumbnail:
# concurrency: {{mul .NumCPU 4}}
# max_exec_count: 2
# timeout: 15s
# konnector:
# concurrency: {{.NumCPU}}
# max_exec_count: 2
# timeout: 200s
# service:
# concurrency: {{.NumCPU}}
# max_exec_count: 2
# timeout: 200s
# export:
# concurrency: 4
# max_exec_count: 1
# timeout: 200s
# push: false
# sms: false
# sendmail: false
# Sets the default duration of jobs database documents to keep
defaultDurationToKeep: "2W" # Keep 2 weeks
# konnectors execution parameters for executing external processes.
konnectors:
cmd: ./scripts/konnector-node-run.sh # run connectors with node
# cmd: ./scripts/konnector-node-run.sh # run connectors with node in dev mode
# cmd: ./scripts/konnector-rkt-run.sh # run connectors with rkt
# cmd: ./scripts/konnector-nsjail-node8-run.sh # run connectors with nsjail
# rag are the URL of the RAG server(s) for AI.
rag:
# A cozy will use the rag server named by its rag.server feature flag, else
# the one of its context, or if the context is not declared, default.
default:
url: http://localhost:8000
api_key: $3cr3t
# Ask the LLM for one tool call at a time (parallel_tool_calls: false).
# Off by default: some LLM gateways refuse the parameter.
single_tool_call: false
beta:
url: http://localhost:8001
api_key: $3cr3t
# mail service parameters for sending email via SMTP
mail:
# mail noreply address - flags: --mail-noreply-address
noreply_address: noreply@localhost
noreply_name: My Twake
reply_to: support@example.org
# mail smtp host - flags: --mail-host
host: smtp.home
# mail smtp port - flags: --mail-port
port: 587
# mail smtp username - flags: --mail-username
username: {{.Env.COZY_MAIL_USERNAME}}
# mail smtp password - flags: --mail-password
password: {{.Env.COZY_MAIL_PASSWORD}}
# Use SSL connection (SMTPS)
# Means no STARTTLS
# flags: --mail-use-ssl
use_ssl: false
# disable mail STARTTLS
# Means using plain unencrypted SMTP
# flags: --mail-disable-tls
disable_tls: false
# skip the certificate validation (may be useful on localhost)
skip_certificate_validation: false
# Local Name
# The hostname sent to the SMTP server with the HELO command
# Defaults to localhost
# flags: --mail-local-name
local_name: cozy.domain.example
# It is also possible to override the mail server per context.
contexts:
beta:
# If the host is set to "-", no mail will be sent on this context
host: smtp.example.org
port: 587
username: {{.Env.COZY_BETA_MAIL_USERNAME}}
password: {{.Env.COZY_BETA_MAIL_PASSWORD}}
# campaign mail service parameters for sending campaign emails via SMTP
# If campaign_mail.host is empty, the default mail config will be used.
campaign_mail:
# SMTP server host
# Defaults to empty string
host: smtp.home
# SMTP server port
# Defaults to 25
port: 587
# SMTP server username
# Defaults to empty string
username: {{.Env.COZY_MAIL_USERNAME}}
# SMTP server password
# Defaults to empty string
password: {{.Env.COZY_MAIL_PASSWORD}}
# Use SSL connection (SMTPS)
# Means no STARTTLS
# Defaults to false
use_ssl: false
# Disable STARTTLS for SMTP server
# Means using plain unencrypted SMTP
# Defaults to true
disable_tls: false
# Skip the certificate validation (may be useful on localhost)
# Defaults to false
skip_certificate_validation: false
# Local Name
# The hostname sent to the SMTP server with the HELO command
# Defaults to empty string
local_name: cozy.domain.example
# It is also possible to override the campaign mail config per context.
contexts:
beta:
# If the host is set to "-", no mail will be sent on this context
host: smtp.example.org
port: 587
username: {{.Env.COZY_BETA_MAIL_USERNAME}}
password: {{.Env.COZY_BETA_MAIL_PASSWORD}}
# location of the database for IP -> City lookups - flags: --geodb
# See https://dev.maxmind.com/geoip/geoip2/geolite2/
geodb: ""
# minimal duration between two password reset
password_reset_interval: 15m
# redis namespace to configure its usage for different part of the stack. redis
# is not mandatory and is specifically useful to run the stack in an
# environment where multiple stacks run simultaneously.
redis:
# the redis clients created can be configured to be used with a cluster of
# redis. if addrs field is left empty, redis is not used.
# either a single address or a seed list of host:port addresses
# of cluster/sentinel nodes separated by whitespaces.
addrs: # localhost:1234 localhost:4321
# the sentinel master name - only failover clients.
master:
# redis password
password:
# databases number for each part of the stack using a specific database.
databases:
jobs: 0
cache: 1
lock: 2
sessions: 3
downloads: 4
konnectors: 5
realtime: 6
log: 7
rate_limiting: 8
# advanced parameters for advanced users
# dial_timeout: 5s
# read_timeout: 3s
# write_timeout: 3s
# pool_size: max(25, 10 * runtime.NumCPU()) # pool_size cannot be below 25
# pool_timeout: 3s
# idle_timeout: 5m
# enables read only queries on slave nodes.
# read_only_slave: false
# Registries used for applications and konnectors
registries:
default:
- https://apps-registry.cozycloud.cc/
# Wizard used for moving a Cozy from one place/hoster to another
move:
url: https://move.cozycloud.cc/
# OnlyOffice server for collaborative edition of office documents
office:
default:
onlyoffice_url: https://documentserver.example.org/
onlyoffice_inbox_secret: inbox_secret
onlyoffice_outbox_secret: outbox_secret
# [internal usage] Cloudery configuration
# clouderies:
# default:
# api:
# url: https://manager.example.org/
# token: xxxxxx
# [internal usage] Common settings
# common_settings:
# default:
# url: https://sign-up.example.org/
# token: f95880b7fa9e8a51e103ac5383bc5956d849267e99b336f31df8bd86c2e9ec50
# The autocomplete API of the calendar side service, used to suggest the
# recipients of a sharing when common_contacts is enabled. The key is the context
# name, with no fallback on default. Otherwise, suggestions search the local and
# organization contacts in CouchDB, independently of centralized_org_directory.
# contacts_search:
# my-context:
# url: https://calendar-side-service.example.org:81/api/people/search
# token: abcdef
# All the deprecated apps listed here will see their OAUTH2 Authorization
# flow interupted and redirected to a page proposing to move to the new
# cozy application.
#
# The keys for `store_urls` can be: iphone/android/other
deprecated_apps:
apps:
# - software_id: "github.com/cozy/some-app"
# name: "some-app"
# store_urls:
# iphone: https://some-apple-store-url
# android: https://some-android-store-url
# The list of authorized hosts to redirect to when using the authentication
# confirm endpoint.
authorized_hosts_for_confirm_auth:
- sometool.example.org
# Authentication can be configured per context. The keys under "authentication"
# are context names.
authentication:
beta:
disable_password_authentication: false
oidc:
client_id: aClientID
client_secret: s3cret3
scope: openid profile
redirect_uri: https://oauthcallback.mycozy.cloud/oidc/redirect
authorize_url: https://identity-provider/path/to/authorize
token_url: https://identity-provider/path/to/token
userinfo_url: https://identity-provider/path/to/userinfo
userinfo_instance_field: cozy_number
id_token_jwk_url: https://identity-provider/path/to/jwk
allow_app_token_exchange: true
app_token_exchange:
# OIDC id_token audience.
twake-mail-web:
# Must be a Cozy linked application software_id. The local OAuth
# scope is derived from this linked app manifest.
software_id: registry://mail
# Optional OIDC claim containing the target Cozy instance domain.
instance_claim: workplaceFqdn
notifications:
# Activate development APIs (iOS only)
development: false
# Firebase Cloud Messaging API
# fcm_credentials_file: /etc/cozy/fcm_credentials.json
# APNS/2 certificates for iOS notifications
# ios_certificate_key_path: path/to/certificate.p12
# ios_certificate_password: mycertificatepasswordifany
# ios_key_id: my_key_id_if_any
# ios_team_id: my_team_id_if_any
# Huawei notifications
# huawei_get_token: http://localhost:3001/api/notification-token/huawei
# huawei_send_message: https://push-api.cloud.huawei.com/v1/<your_appid>/messages:send
# Configure the SMS per context
contexts:
beta:
provider: api_sen
url: https://sms.example.org/api/send
token: {{.Env.COZY_BETA_SMS_TOKEN}}
flagship:
contexts:
cozy_beta:
skip_certification: true
apk_package_names:
- io.cozy.drive.mobile
- io.cozy.flagship.mobile
apk_certificate_digests:
- 'xNnH7T1BSDh6erMzNysfakBVLLacbSbOMxVk8jEPgdU='
play_integrity_decryption_keys:
- 'bVcBAv0eO64NKIvDoRHpnTOZVxAkhMuFwRHrTEMr23U='
play_integrity_verification_keys:
- 'MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElTF2uARN7oxfoDWyERYMe6QutI2NqS+CAtVmsPDIRjBBxF96fYojFVXRRsMb86PjkE21Ol+sO1YuspY+YuDRMw=='
apple_app_ids:
- 3AKXFMV43J.io.cozy.drive.mobile
- 3AKXFMV43J.io.cozy.flagship.mobile
# Allowed domains for the CSP policy used in hosted web applications
csp_allowlist:
# script: https://allowed1.domain.com/ https://allowed2.domain.com/
# img: https://allowed.domain.com/
# style: https://allowed.domain.com/
# font: https://allowed.domain.com/
# frame_ancestors: https://allowed.domain.com/
# It is also possible to configure the CSP policy per context. The values are
# cumulative with the global csp allowlist.
contexts:
beta:
img: https://allowed2.domain.com/
# It can useful to disable the CSP policy to debug and test things in local
# disable_csp: true
log:
# logger level (debug, info, warning, panic, fatal) - flags: --log-level
level: info
# send logs to the local syslog - flags: --log-syslog
syslog: false
# It is possible to customize some behaviors of cozy-stack in function of the
# context of an instance (the context field of the settings document of this
# instance). Here, the "beta" context is customized with.
contexts:
beta:
# Indicates if debug related features should be enabled in front
# applications.
debug: false
# URL of the external signup (SaaS) application managing this context. When
# set, phone and recovery_email become read-only through PUT /settings/instance
# and the POST /settings/email flow is disabled, since the signup app owns the
# user profile. The email is always protected from PUT /settings/instance
# regardless of this setting (it must go through POST /settings/email or the
# CLI).
signup_url: https://signup.example.org
# Enable the contacts service feed, collected contacts and external search.
# Local organization lookup remains available without the service.
common_contacts: false
# Keep directory copies until the sharing UI supports organization lookup.
# Independent of common_contacts: B2B events can maintain the org directory.
centralized_org_directory: false
# How long the Stack counts the file changes of an organization drive
# before publishing them on the activity exchange (ADR 010).
drive_activity:
window: 30s
# Redirect to a specific route of Cozy-Home after the onboarding
# Format: appslug/#/path/to/route
onboarded_redirection: home/#/discovery/?intro
# Redirect to the photos application after login
default_redirection: drive/#/folder
# This domain will be used as a suggestion for the members of a sharing
# when they are asked for the URL of their Cozy instance
sharing_domain: mycozy.cloud
# Allow to customize the cozy-bar link to the help
help_link: https://forum.cozy.io/
# claudy actions list
claudy_actions:
- desktop
- mobile
# konnectors slugs to exclude from cozy-collect
exclude_konnectors:
- a_konnector_slug
# If enabled, this option will skip permissions verification during
# webapp/konnectors installs & updates processes
permissions_skip_verification: false
# By default, only the store app can install and update applications. But,
# if this setting is enabled, it allows other applications with the right
# permission to install and update applications.
allow_install_via_a_permission: true
# Tells if the photo folder should be created or not during the instance
# creation (default: true)
init_photos_folder: true
# Tells if the administrative folder should be created or not during the
# instance creation (default: true)
init_administrative_folder: true
# Allows to override the default template "Cozy" title by your own title
templates_title: "My Personal Cloud"
# Use a different noreply mail for this context
noreply_address: noreply@example.org
noreply_name: My Twake Beta
reply_to: support@example.org
# Configure the error page
support_address: support@example.org
support_page_url: http://support.example.org
# Change the limit on the number of members for a sharing
max_members_per_sharing: 50
# Use a different wizard for moving a Cozy
move_url: https://move.example.org/
# Feature flags
features:
- hide_konnector_errors
# Platform banners (io.cozy.banners) for the instances of this context.
# See docs/banners.md.
banner:
# Off by default, so the rules can ship before the clients that render
# them. Turning it back off stops the writes and leaves the documents
# already materialized in place.
enabled: true
# The categories the stack.banner.commands queue is allowed to write, or
# "*" for all of them. Its publisher is authenticated by its broker
# credentials and bindings, so this says what it may say, not who it
# is. The quota category is always refused: the stack measures disk
# usage itself.
command_categories:
- billing
- trial
# List of applications that can be automatically updated even if the
# permissions have changed
additional_platform_apps:
- superapp
# Provides custom logo used in some cozy app (e.g. Home footer)
# Use type key if you want defined a logo as main
logos:
coachco2:
light:
- src: /logos/main_cozy.png
alt: Twake Workplace
dark:
- src: /logos/main_cozy.png
alt: Twake Workplace
home:
light:
- src: /logos/main_cozy.png
alt: Twake Workplace
type: main
- src: /logos/1_partner.png
alt: Partner n°1
type: secondary
dark:
- src: /logos/main_cozy.png
alt: Twake Workplace
type: main
- src: /logos/1_partner.png
alt: Partner n°1
type: secondary
# Sharing configuration for cozy-to-cozy sharing trust rules
sharing:
# Auto-accept sharing invitations from trusted domains or contacts(default: false)
auto_accept_trusted: true
# Auto-accept sharing invitations from trusted contacts (default: false)
auto_accept_trusted_contacts: true
# List of trusted domains for automatic sharing acceptance
trusted_domains:
- example.com
- mycompany.twake.app
# Allow shared drive members with write access to update or revoke
# share-by-link permissions created by other members (default: false)
allow_writers_to_manage_links: false
# Antivirus configuration for scanning uploaded files using ClamAV
antivirus:
# Enable or disable antivirus scanning
enabled: false
# ClamAV daemon TCP address (clamd must be running)
address: localhost:3310
# Maximum time to wait for a scan to complete
timeout: 300s
# Files larger than this size will be skipped (in bytes, 100MB default)
max_file_size: 104857600
# Action when an infected file is detected: "warn" or "block"
on_infected: warn
# Notification settings
notifications:
# Send email notification when infected file is detected
email_on_infected: true
# Allowed actions per scan status
# If not specified, permissive defaults are used
actions:
pending:
- download
- share
- preview
- delete
clean:
- download
- share
- preview
- delete
infected:
- delete
error:
- download
- share
- preview
- delete
skipped:
- download
- share
- preview
- delete
# Default context - used as fallback when instance context is not specified
# or when a context doesn't have sharing configuration
default:
sharing:
# Conservative defaults for production
auto_accept_trusted: false
auto_accept_trusted_contacts: false
trusted_domains: []
# WARNING: Closed-network deployments only.
# Allows safehttp callers to reach private CIDRs, bypassing SSRF protections
# for those addresses (including non-standard ports).
# This affects sharing, move/import/export, WebDAV, BI, common settings,
# Bitwarden icon fetching, and all other safehttp-backed outbound calls.
# Default behavior (empty list) keeps all private addresses blocked.
# safe_http:
# trusted_private_networks:
# - 10.0.0.0/8
# - 172.16.0.0/12
# - 192.168.0.0/16
rabbitmq:
enabled: true
nodes:
default:
enabled: true
url: amqp://guest:guest@localhost:5672/
tls:
# root_ca: /etc/ssl/certs/ca.pem
insecure_skip_validation: false
exchanges:
- name: auth
kind: topic
durable: true
declare_exchange: false
queues:
- name: stack.user.password.updated
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.auth.dlx
dlq_name: stack.dead.letter.user.password.updated
dl_routing_key: password.updated.dead
prefetch: 8
delivery_limit: 5
bindings:
- user.password.updated
- name: stack.user.created
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.auth.dlx
dlq_name: stack.dead.letter.user.created
dl_routing_key: user.created.dead
prefetch: 8
delivery_limit: 5
bindings:
- user.created
- name: stack.user.phone.updated
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.auth.dlx
dlq_name: stack.dead.letter.user.phone.updated
dl_routing_key: user.phone.updated.dead
prefetch: 8
delivery_limit: 5
bindings:
- user.phone.updated
- name: billing
kind: topic
durable: true
declare_exchange: false
queues:
- name: stack.domain.subscription.changed
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.billing.dlx
dlq_name: stack.dead.letter.domain.subscription.changed
dl_routing_key: domain.subscription.changed.dead
prefetch: 8
delivery_limit: 5
bindings:
- domain.subscription.changed
- name: b2b
kind: topic
durable: true
declare_exchange: false
queues:
- name: stack.user.lifecycle.queue
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.b2b.dlx
dlq_name: stack.dead.letter.user.lifecycle
dl_routing_key: domain.user.deleted.dead
prefetch: 8
delivery_limit: 5
bindings:
- domain.user.deleted
- name: stack.b2b.group.lifecycle
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.b2b.dlx
dlq_name: stack.dead.letter.b2b.group.lifecycle
dl_routing_key: b2b.group.dead
prefetch: 8
delivery_limit: 5
bindings:
- b2b.group.created
- b2b.group.updated
- b2b.group.deleted
- b2b.group.member.added
- b2b.group.member.removed
- name: stack.app.commands.queue
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.b2b.dlx
dlq_name: stack.dead.letter.app.commands
dl_routing_key: app.installation.requested.dead
prefetch: 8
delivery_limit: 5
bindings:
- app.installation.requested
# Banner commands. The exchange is a deployment choice: an existing one
# with dedicated bindings works too, as long as both repositories name the
# same one. The dead letter queue is where a malformed or unauthorized
# command lands, so it has to exist for those to be inspectable.
- name: platform
kind: topic
durable: true
declare_exchange: false
queues:
- name: stack.banner.commands
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.platform.dlx
dlq_name: stack.dead.letter.banner.commands
dl_routing_key: banner.commands.dead
prefetch: 8
delivery_limit: 5
bindings:
- banner.materialize
- banner.clear
# twake:contacts:common is a fanout exchange owned by the contacts side
# service, so the binding key is empty. Only the contexts with
# common_contacts set write what it carries.
- name: twake:contacts:common
kind: fanout
durable: true
declare_exchange: false
queues:
- name: stack.contacts.common
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.contacts.dlx
dlq_name: stack.dead.letter.contacts.common
dl_routing_key: contacts.common.dead
prefetch: 8
delivery_limit: 5
bindings:
- ""
# Commands of other apps on the shared drives of organization instances.
# The replies go to the activity exchange, which must exist with a queue
# bound by the app, or the publish fails and the command is retried.
- name: drive
kind: topic
durable: true
declare_exchange: false
queues:
- name: stack.drive.commands
declare: true
declare_dlx: true
declare_dlq: true
dlx_name: stack.drive.dlx
dlq_name: stack.dead.letter.drive.commands
dl_routing_key: drive.commands.dead
prefetch: 8
delivery_limit: 5
bindings:
- drive.org_drive.ensure