main.ymlΒΆ

---
application_id: "web-app-mattermost"
entity_name: "{{ application_id | get_entity_name }}"

container_port: "{{ lookup('config', application_id, 'services.' ~ entity_name ~ '.ports.internal.http') }}"

MATTERMOST_DATABASE_DSN: "{{ lookup('database', application_id, 'url_full') }}?sslmode=disable&connect_timeout=10"

MATTERMOST_CONTAINER: "{{ lookup('config', application_id, 'services.mattermost.name') }}"
MATTERMOST_CONTAINER_ADDRESS: "{{ lookup('container_address', application_id, entity_name) }}"

MATTERMOST_OIDC_ENABLED: "{{ lookup('config', application_id, 'services.sso.enabled') }}"

MATTERMOST_LITELLM_ENABLED: "{{ lookup('config', application_id, 'services.litellm.enabled') | bool }}"
MATTERMOST_LITELLM_BASE_URL: "{{ LITELLM_OPENAI_BASE_LOCAL_URL }}"
MATTERMOST_LITELLM_API_KEY: "{{ lookup('config', application_id, 'secrets.credentials.litellm_api_key') }}"
MATTERMOST_LITELLM_SERVICE_ID: infinito-litellm
MATTERMOST_LITELLM_BOT_ID: infinito-litellm-agent
MATTERMOST_LITELLM_BOT_NAME: agent

MATTERMOST_LITELLM_SERVICE:
  id: "{{ MATTERMOST_LITELLM_SERVICE_ID }}"
  name: Infinito LiteLLM
  type: openaicompatible
  apiKey: "{{ MATTERMOST_LITELLM_API_KEY }}"
  apiURL: "{{ MATTERMOST_LITELLM_BASE_URL }}"
  defaultModel: "{{ LITELLM_CHAT_MODEL }}"
  orgId: ""
  tokenLimit: 0
  streamingTimeoutSeconds: 0

MATTERMOST_LITELLM_BOT:
  id: "{{ MATTERMOST_LITELLM_BOT_ID }}"
  name: "{{ MATTERMOST_LITELLM_BOT_NAME }}"
  displayName: Agent
  customInstructions: ""
  serviceID: "{{ MATTERMOST_LITELLM_SERVICE_ID }}"
  model: "{{ LITELLM_CHAT_MODEL }}"
  enableVision: false
  disableTools: false
  channelAccessLevel: 0
  channelIDs: []
  userAccessLevel: 0
  userIDs: []
  teamIDs: []
  maxFileSize: 0

MATTERMOST_MCP_ENABLED: "{{ lookup('config', application_id, 'services.mattermostmcp.enabled') | bool }}"
MATTERMOST_MCP_PLUGIN_ID: mattermost-ai
MATTERMOST_MCP_TOKEN_DESCRIPTION: mcp

MATTERMOST_KEYCLOAK_CONTAINER_ADDRESS: "{{ lookup('container_address', 'web-app-keycloak', 'keycloak') }}"
MATTERMOST_KEYCLOAK_ADMIN_USER: "{{ lookup('config', 'web-app-keycloak', 'services.keycloak.accounts.system.username') }}"
MATTERMOST_KEYCLOAK_ADMIN_PASS: "{{ lookup('users', 'administrator').password }}"

MATTERMOST_MCP_CONTAINER: "{{ lookup('config', application_id, 'services.mattermostmcp.name') }}"
MATTERMOST_MCP_PORT: "{{ lookup('config', application_id, 'services.mattermostmcp.ports.internal.http') }}"
MATTERMOST_MCP_INSTANCE_DIR: "{{ [lookup('container', application_id, 'directories.instance'), 'mcp'] | path_join }}"
MATTERMOST_MCP_UPSTREAM_PATH: "{{ lookup('config', application_id, 'mcp.adapter.upstream_path') }}"
MATTERMOST_MCP_UPSTREAM_URL: "http://{{ MATTERMOST_CONTAINER }}:{{ container_port }}{{ MATTERMOST_MCP_UPSTREAM_PATH }}"
MATTERMOST_MCP_BEARER: "{{ lookup('config', application_id, 'secrets.credentials.mcp_bearer') }}"
MATTERMOST_MCP_CONTRACT:
  upstream_kind: mcp
  provider: "{{ application_id }}"
  upstream_url: "{{ MATTERMOST_MCP_UPSTREAM_URL }}"
  auth_subject: "{{ lookup('config', application_id, 'mcp.auth_subject') }}"
  mutating_tools_enabled: "{{ lookup('config', application_id, 'mcp.tools.mutating_tools_enabled') | bool }}"
  tools: "{{ lookup('file', 'mcp/tools.json') | from_json }}"
  limits: "{{ lookup('config', application_id, 'mcp.limits') }}"
  schema_sha256: "{{ lookup('config', application_id, 'mcp.tools.schema_sha256') }}"