�
���g�@ �
��s � d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl m
Z
mZmZ d dl
mZ d dlZd dlmZ d dlmZmZmZmZmZ d dlmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d d l&m'Z'm(Z( d d
l)m*Z* G d� dej+ � � Z, ej- d
� � �. e,� � � � d� Z/ e/� � G d� de'� � Z0d� Z1d� Z2d� Z3ej4 �5 e� d�� � r, e1� � Z6 e2e6� � ej7 e� d�e� d�� � d dddgdd�ddgdd�ddgd d�d!d"gd#d�d$d%gd&d�d'd(gd)d�d*d+gd,d�gd-�d.�Z8d/� Z9 e9� � a:d0e;fd1�Z<g a=d2� Z> ed3� � Z?ej@ �A d4d5� � �B � � d6k ZC G d7� d8e
e? � � ZD G d9� d:� � ZE eDd;d<ej@ �A d;d5� � �B � � d6k � � ZF eDd=d>ej@ �A d=d?� � �B � � d6k � � ZG eDd@dAej@ �A d@d� � � � ZH eDdBdCej@ �A dBdD� � � � ZI eDdEdFej@ �A dEd?� � �B � � d6k � � ZJ eDdGdHej@ �A dGd?� � �B � � d6k � � ZKi ZL eDdIdJej@ �A dId� � � � ZM eDdKdLej@ �A dKd� � � � ZN eDdMdNej@ �A dMdO� � � � ZO eDdPdQej@ �A dPd� � � � ZP eDdRdSej@ �A dRd� � � � ZQ eDdTdUej@ �A dTd� � � � ZR eDdVdWej@ �A dVd� � � � ZS eDdXdYej@ �A dXdO� � � � ZT eDdZd[ej@ �A dZd� � � � ZU eDd\d]ej@ �A d\d� � � � ZV eDd^d_ej@ �A d^d� � � � ZW eDd`daej@ �A d`db� � � � ZX eDdcddej@ �A dcd� � � � ZY eDdedfej@ �A ded� � � � ZZ eDdgdhej@ �A dgd� � � � Z[ eDdidjej@ �A did� � � � Z\ eDdkdlej@ �A dkd� � � � Z] eDdmdnej@ �A dmdO� � � � Z^ eDdodpej@ �A dod� � � � Z_ eDdqdrej@ �A dqds� � � � Z` eDdtduej@ �A dtdv� � � � Za eDdwdxej@ �A dwdy� � � � Zb eDdzd{ej@ �A dzd|� � � � Zc eDd}d~ej@ �A dd�� � � � Zd eDd�d�ej@ �A d�d?� � �B � � d6k � � Ze eDd�d�ej@ �A d�d?� � �B � � d6k � � Zf eDd�d�ej@ �A d�d�� � � � Zg eDd�d�d�� ej@ �A d�d�� � �h d�� � D � � � � Zi eDd�d�d�� ej@ �A d�d�� � �h d�� � D � � � � Zj eDd�d�d�� ej@ �A d�d�� � �h d�� � D � � � � Zkd�� Zl el� � e ejm d�e!d�z � � � � �n � � Zoed�z �p d�� � D ]�Zqeq�r � � roeoeq�s ed�z � � z Ztetju �v d�d���� � ejw eqet� � �`# ex$ rZy ejz d�ey� �� � Y dZy[y�}dZy[yww xY w��ed�z d�z Z{e{�5 � � r; ejw e{eod�z � � n%# ex$ rZy ejz d�ey� �� � Y dZy[yndZy[yww xY wed�z d�z Z|e|�5 � � r; ejw e|eod�z � � n%# ex$ rZy ejz d�ey� �� � Y dZy[yndZy[yww xY wed�z d�z Z}e}�5 � � r; ejw e}eod�z � � n%# ex$ rZy ejz d�ey� �� � Y dZy[yndZy[yww xY wej@ �A d�d� � Z~e~�r{ ejA d�e~� �� � Ze� � � Z6ej� �r(d�e6v r�e6d� d d�k rd�e6d� � �ne6d� xZ#Z� ejA e�d���� � Zej� d�k rI e�eo� d��d�� � 5 Z�d�ej� _� ej� ej� e�� � ddd� � n# 1 swxY w Y d�e6v r�e6d� d d�k rd�e6d� � �ne6d� Z� ejA e�d���� � Zej� d�k rI e�eo� d��d�� � 5 Z�d�ej� _� ej� ej� e�� � ddd� � n# 1 swxY w Y e6dv Z$n"# ex$ rZy e%j� ey� � Y dZy[yndZy[yww xY wej@ �A d�d� � Z�ej@ �A d�d�� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ed�z Z�e��v d�d���� � ed�z Z�e��v d�d���� � eDd�d�ej@ �A d�d5� � �B � � d6k � � Z� eDd�d�ej@ �A d�d5� � �B � � d6k � � Z�ej@ �A d�d�� � Z�ej@ �A d�d� � Z�e�r!e��� d�� � r
e�ddÅ ne�Z�ej@ �A d�d� � Z�ej@ �A d�dƦ � Z�e�dk r'e�dk r!e��� dǦ � r
e�ddȅ ne�Z�ed�k r*e�d�k r e�se��B � � d6k rd�Z�nd�Z�ne�rd�Z�ej@ �A d�d� � Z�e�dk re�ne�Z�dτ e��h dЦ � D � � Z� eDd�d�e�� � Z� eDd�d�i � � Z� eDd�d�ej@ �A d�d5� � �B � � d6k � � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�ej@ �A d�d� � Z�e�dk rd�Z�ej@ �A d�d� � Z�e�dk re�ne�Z�d܄ e��h dЦ � D � � Z� eDd�d�e�� � Z�ej@ �A d�d� � Z�e�dk re�ne�Z�d߄ e��h dЦ � D � � Z� eDd�d�e�� � Z� eDd�d�i � � Z�dZ� e�j� e�j� �� dڦ � Z�n# ex$ r Y nw xY wd�Z� eDd�d�g � � Z� eDd�d�ej@ �A d�d� � � � Z� eDd�d�e"sd�n0ej@ �A d�d5� � �B � � d6k � � Z� eDd�d�ej@ �A d�d5� � �B � � d6k � � Z� eDd�d�ej@ �A d�d� � � � Z� eDd�d�ej@ �A d�d� � � � Z� eDd�d�ddgdd�ddgdd�ddgd d�d!d"gd#d�d$d%gd&d�d'd(gd)d�g� � Z� eDd�d�g � � Z� eDd�d� ejm d�d�� � � � Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A d�d?� � �B � � d6k Z�ej@ �A �d d5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �d d?� � �B � � d6k Z�ej@ �A �d
d?� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �dd5� � �B � � d6k Z�ej@ �A �d
d5� � �B � � d6k Z�e�e�e�e��d�e�e�e�e��d�e�e�e�e�e�e�e�e�e�eǐd�
e�e�e�eːd��d�Z� eD�d�de̦ � Z� eD�d�dej@ �A �dd?� � �B � � d6k � � Z� eD�d�dej@ �A �dd5� � �B � � d6k � � Z� eD�d�dg � � ZАd�dd��dd�d��d�Z� eD�d �d!ej@ �A �d d� � � � Z�ej@ �A �d"d5� � �B � � d6k Z�ej@ �A �d#d5� � �B � � d6k Z� eD�d$�d%ej@ �A �d$d5� � �B � � d6k � � Z� eD�d&�d'ej@ �A �d&d5� � �B � � d6k � � Z� eD�d(�d)ej@ �A �d(d5� � �B � � d6k � � Zאd*� Zؐd+� Z�ej@ �A �d,d�� � �h dЦ � Z�d�e�v r e%j� �d-� � e�eڦ � G �d.� �d/e� � Z� e j� ej@ �A �d0�d1� � � � Zސd2� e�D � � Z�n(# ex$ r Zy e%j� �d3ey� �� � g Z�Y dZy[yndZy[yww xY w eD�d0�d4eަ � Z� eD�d5�d6ej@ �A �d5d6� � �B � � d6k � � Z� eD�d7�d8ej@ �A �d7d� � � � Z� eD�d9�d:ej@ �A �d9d� � � � Z� eD�d;�d<ej@ �A �d;d� � � � Z� eD�d=�d>ej@ �A �d=d� � � � Z�d?Z� eD�d@�dAej@ �A �d@d� � � � Z�dBZ� eD�dC�dDej@ �A �dCd� � � � Z�dEZ� eD�dF�dGej@ �A �dFd5� � �B � � d6k � � Z� eD�dH�dIej@ �A �dHd5� � �B � � d6k � � Z� eD�dJ�dKej@ �A �dJd5� � �B � � d6k � � Z� eD�dL�dMej@ �A �dLd5� � �B � � d6k � � Z� eD�dN�dOej@ �A �dNd� � � � Z�dPZ� eD�dQ�dRej@ �A �dQd?� � �B � � d6k � � Z� eD�dS�dT e�ej@ �A �dSdD� � � � � � Z� eD�dU�dVej@ �A �dUd� � � � Z�dWZ� eD�dX�dYej@ �A �dXd� � � � Z��dZZ��d[Z��d\Z� eD�d]�d^ej@ �A �d]d5� � �B � � d6k � � Z� eD�d_�d`ej@ �A �d_�da� � � � Z� eD�db�dcej@ �A �dbd� � � � Z� eD�dd�deej@ �A �ddd� � � � Z� eD�df�dgej@ �A �dfd� � � � Z� eD�dh�diej@ �A �dhd� � � � Z� eD�dj�dk e�ej@ �A �dj�dl� � � � � � Z� eD�dm�dnej@ �A �dmd5� � �B � � d6k � � �Z eD�do�dpej@ �A �do�da� � � � �Z eD�dq�drej@ �A �dqd� � � � �Z eD�ds�dtej@ �A �dsej@ �A �dbd� � � � � � �Z eD�du�dvej@ �A �duej@ �A �ddd� � � � � � �Z eD�dw�dxej@ �A �dwej@ �A �dfd� � � � � � �Z eD�dy�dzej@ �A �dyej@ �A �dhd� � � � � � �Z eD�d{�d| e�ej@ �A �d{ej@ �A �dj�dl� � � � � � � � �Z�d}�Zej@ �A �d~�d� � �Z e� �d���Z
�e �dk �rOd d�l�Zej@ �A �d��e�j � � �Z
ej@ �A �d��e�j � � �Zej@ �A �d�d� � �Z e�ej@ �A �d��d�� � � � �Zej@ �A �d�d� � �Zej@ �A �d�d� � �Zej@ �A �d�d� � �Z�er- �e�d�� �e�h d�� � D � � � � �Znd�Zej@ �A �d�dƦ � �B � � d6k �Zej@ �A �d�e� �d��� � �Zej@ �A �d��d�� � �Zej@ �A �d�d� � �Zej@ �A �d�d� � �Zej@ �A �d�d� � �Zej@ �A �d��d�� � �Zej@ �A �d�d6� � �B � � d6k �Zej@ �A �d�dƦ � �B � � d6k �Zej@ �A �d�d� � �Zej@ �A �d�d� � �Z ej@ �A �d��d�� � �Z!ej@ �A �d�d� � �Z"ej@ �A �d�d� � �Z#ej@ �A �d�d� � �Z$ej@ �A �d�d� � �Z%ej@ �A �d�d� � �Z&ej@ �A �d�d� � �Z'ej@ �A �d��d�� � �Z(ej@ �A �d�e� � �Z)�e �d�k r%�e)��* �d�� � s
�e+�d�� � � e�ej@ �A �d��d�� � � � �Z, eD�d��d� ejm �d�d?� � �B � � d6k � � �Z- eD�d��d�ej@ �A �d�d� � � � �Z. eD�d��d�ej@ �A �d�d� � � � �Z/ eD�d��d� ejm �d�d?� � �B � � d6k � � �Z0 eD�d��d�ej@ �A �d�d� � � � �Z1 eD�d��d�ej@ �A �d�d� � �B � � � � �Z2 eD�d��d� ejm �d��d�� � � � �Z3 eD�d��d� ejm �d��d�� � � � �Z4 eD�d��d� ejm �d�d� � � � �Z5 eD�d��d� ejm �d�d� � � � �Z6 eD�d��d� ejm �d�d� � � � �Z7 eD�d��d�ej@ �A �d�d?� � �B � � d6k � � �Z8 eD�d��d� e�ej@ �A �d��dæ � � � � � �Z9 eD�dĐd� e�ej@ �A �dĐdæ � � � � � �Z: eD�dƐd� �e;ej@ �A �dƐdȦ � � � � � �Z< eD�dɐd�ej@ �A �d�d� � �B � � d6k � � �Z= eD�dːd� ejm �d�d?� � �B � � d6k � � �Z> eD�d͐d�ej@ �A �dͦ � r$ e�ej@ �A �dͦ � � � nd� � �Z? eD�dϐd�ej@ �A �dϦ � r$ e�ej@ �A �dϦ � � � nd� � �Z@ eD�dѐd�ej@ �A �d�d� � � � �ZA eD�dӐd�ej@ �A �d�d?� � �B � � d6k � � �ZB eD�dՐd�ej@ �A �dՐdצ � � � �ZC e%�jD �dؐeCj� � �� � e o1ej@ �A �d�d5� � �B � � d6k �ZEej@ �A �d�d5� � �B � � d6k �ZF eD�dېd� e�ej@ �A �dۦ � pej@ �A �dݐdަ � � � � � �ZGej@ �A �d�d� � �ZHej@ �A �d�d� � �ZIej@ �A �d�d� � �ZJ eD�d�d�ej@ �A �d�d� � � � �ZK�eKj� dk r e%�jD �d�eKj� � �� � e o1ej@ �A �d�d5� � �B � � d6k �ZLej@ �A �d�d5� � �B � � d6k �ZM eD�d�d�ej@ �A �d�d� � � � �ZNej@ �A �d�e�� �d�� � �ZO eD�d�d�ej@ �A �d�d�� � � � �ZP eD�d�d� e�ej@ �A �d�d� � � � � � �ZQ eD�d�d� e�ej@ �A �d�d� � � � � � �ZR�d��ZS eD�d��d�ej@ �A �d��eS� � � � �ZT eD�d��d� ejm �d�e�� � � � �ZU eD�d��d� ejm �d�e�� � � � �ZV eD�d��d� ejm �d�e�� � � � �ZW eD�d��d� ejm �d�d� � � � �ZX ejm �d�d?� � �B � � d6k �ZY eD�d �d ejm �d �d� � �h d�� � � � �ZZ eD�d�d ejm �dd� � � � �Z[ eD�d�d ejm �dd?� � �B � � d6k � � �Z\ eD�d�d ejm �dd� � � � �Z] eD�d �d
ejm �d d?� � �B � � d6k � � �Z^ eD�d�d e� ejm �d�dæ � � � � � �Z_ eD�d
�dg � � �Z` eD�d�d e� ejm �d�d� � � � � � �Za eD�d�dej@ �A �dd� � � � �Zb eD�d�dej@ �A �dd5� � �B � � d6k � � �Zc eD�d�d ejm �dd?� � �B � � d6k � � �Zd eD�d�d ejm �dd� � � � �Ze eD�d�d ejm �dd� � � � �Zf eD�d�d ejm �dd� � � � �Zg eD�d�d ejm �dd� � � � �Zh eD�d �d! ejm �d d� � � � �Zi eD�d"�d# ejm �d"d� � � � �Zj eD�d$�d% ejm �d$d� � � � �Zk eD�d&�d' ejm �d&d� � � � �Zl eD�d(�d) ejm �d(d5� � �B � � d6k � � �Zm eD�d*�d+ ejm �d*d� � � � �Zn eD�d,�d- ejm �d,d� � � � �Zo eD�d.�d/ ejm �d.d� � � � �Zp eD�d0�d1 ejm �d0d� � � � �Zq eD�d2�d3 ejm �d2d� � � � �Zr eD�d4�d5 ejm �d4d� � � � �Zs eD�d6�d7 ejm �d6d� � � � �Zt eD�d8�d9ej@ �A �d8�d:� � � � �Zu eD�d;�d<ej@ �A �d;d� � � � �Zv eD�d=�d> ejm �d=d� � � � �Zw eD�d?�d@ ejm �d?d� � � � �Zx eD�dA�dB ejm �dAd� � � � �Zy eD�dC�dD ejm �dCd� � � � �Zz eD�dE�dF ejm �dEd� � � � �Z{ eD�dG�dH ejm �dG�dI� � � � �Z| eD�dJ�dKej@ �A �dJd� � � � �Z} eD�dL�dM e�ej@ �A �dL�dN� � � � � � �Z~ eD�dO�dPej@ �A �dOd� � � � �Z eD�dQ�dRej@ �A �dQ�dS� � � � �Z� eD�dT�dU ejm �dT�dV� � � � �Z� eD�dW�dXej@ �A �dWd� � �B � � d6k � � �Z� eD�dY�dZej@ �A �dYd6� � �B � � d6k � � �Z� eD�d[�d\ ejm �d[d� � � � �Z� eD�d]�d^ ejm �d]d� � � � �Z� eD�d_�d`ej@ �A �d_� � r% �e;ej@ �A �d_� � � � nd� � �Z� eD�da�dbej@ �A �da� � rej@ �A �da� � nd� � �Z� eD�dc�ddej@ �A �dc� � rej@ �A �dc� � nd� � �Z� eD�de�df ejm �ded� � � � �Z� eD�dg�dh ejm �dgd� � � � �Z��di�Z� eD�dj�dk ejm �dj�e�� � � � �Z� eD�dj�dlg � � �Z� eD�dm�dn ejm �dme�� � � � �Z� eD�do�dp ejm �doe�� � � � �Z� eD�dq�dr ejm �dqe�� � � � �Z� eD�ds�dt ejm �dse�� � � � �Z� eD�du�dv ejm �du�dw� � � � �Z� eD�dx�dy e� ejm �dx�dz� � � � � � �Z� eD�d{�d| ejm �d{d� � � � �Z� eD�d}�d~ ejm �d}�d� � � � �Z� ejm �d�e�� �d��� � �Z�e o1ej@ �A �d�d� � �B � � d6k �Z� eD�d��d� ejm �d�d?� � �B � � d6k � � �Z� eD�d��d� ejm �d�d� � � � �Z� eD�d��d� ejm �d�e�� � � � �Z� eD�d��d� ejm �d�e�� � � � �Z� eD�d��d� ejm �d�d� � � � �Z� eD�d��d� ejm �d�d� � � � �Z� eD�d��d� ejm �d�d� � � � �Z� eD�d��d� ejm �d�d� � � � �Z� eD�d��d� ejm �d�d� � � � �Z� eD�d��d� ejm �d�e�� � � � �Z� eD�d��d� ejm �d�e�� � � � �Z� eD�d��d� ejm �d�d� � � � �Z� eD�d��d� ejm �d�d� � � � �Z� eD�d��d� ejm �d��d�� � � � �Z� eD�d��d� ejm �d��d�� � � � �Z� eD�d��d� ejm �d��d�� � � � �Z� eD�d��d� ejm �d��d�� � � � �Z� eD�d��d� ejm �d��d�� � � � �Z� eD�d��d�ej@ �A �d�dƦ � �B � � d6k � � �Z� eD�d��d�ej@ �A �d��d�� � � � �Z� eD�d��d�ej@ �A �d��d�� � � � �Z� eD�d��d� e�ej@ �A �d��d�� � � � � � �Z� eD�d��d�ej@ �A �d��d�� � � � �Z� eD�d��d�ej@ �A �d��d�� � � � �Z� eD�d��d�ej@ �A �d�d� � � � �Z� eD�d��d�ej@ �A �d�d� � � � �Z� eD�d��d�ej@ �A �d�d� � � � �Z� eD�dÐd�ej@ �A �d�ej@ �A �d�d� � � � � � �Z� eD�dƐd�ej@ �A �d�d5� � �B � � d6k � � �Z� eD�dȐd�ej@ �A �d�d� � � � �Z� eD�dʐd�ej@ �A �dʐd̦ � � � �Z�dS (� � N)�datetime)�Path)�Generic�Optional�TypeVar)�urlparse)� BaseModel)�JSON�Column�DateTime�Integer�func)
�DATA_DIR�DATABASE_URL�ENV� REDIS_URL�REDIS_SENTINEL_HOSTS�REDIS_SENTINEL_PORT�FRONTEND_BUILD_DIR�OFFLINE_MODE�OPEN_WEBUI_DIR�
WEBUI_AUTH�WEBUI_FAVICON_URL�
WEBUI_NAME�log)�Base�get_db)�get_redis_connectionc �( � e Zd Zdej defd�ZdS )�EndpointFilter�record�returnc �X � |� � � � d� � dk S )Nz/health�����)�
getMessage�find)�selfr! s �a/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/open_webui/config.py�filterzEndpointFilter.filter% s'