mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-20 19:29:13 +08:00
fix: The default updated_at when a workflow is created (#11709)
Co-authored-by: 刘江波 <jiangbo721@163.com>
This commit is contained in:
parent
9ee9e9c6de
commit
9578246bbb
@ -2,6 +2,7 @@ import enum
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from flask_login import UserMixin
|
from flask_login import UserMixin
|
||||||
|
from sqlalchemy import func
|
||||||
|
|
||||||
from .engine import db
|
from .engine import db
|
||||||
from .types import StringUUID
|
from .types import StringUUID
|
||||||
@ -30,11 +31,11 @@ class Account(UserMixin, db.Model):
|
|||||||
timezone = db.Column(db.String(255))
|
timezone = db.Column(db.String(255))
|
||||||
last_login_at = db.Column(db.DateTime)
|
last_login_at = db.Column(db.DateTime)
|
||||||
last_login_ip = db.Column(db.String(255))
|
last_login_ip = db.Column(db.String(255))
|
||||||
last_active_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
last_active_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
status = db.Column(db.String(16), nullable=False, server_default=db.text("'active'::character varying"))
|
status = db.Column(db.String(16), nullable=False, server_default=db.text("'active'::character varying"))
|
||||||
initialized_at = db.Column(db.DateTime)
|
initialized_at = db.Column(db.DateTime)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_password_set(self):
|
def is_password_set(self):
|
||||||
@ -187,8 +188,8 @@ class Tenant(db.Model):
|
|||||||
plan = db.Column(db.String(255), nullable=False, server_default=db.text("'basic'::character varying"))
|
plan = db.Column(db.String(255), nullable=False, server_default=db.text("'basic'::character varying"))
|
||||||
status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying"))
|
status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying"))
|
||||||
custom_config = db.Column(db.Text)
|
custom_config = db.Column(db.Text)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
def get_accounts(self) -> list[Account]:
|
def get_accounts(self) -> list[Account]:
|
||||||
return (
|
return (
|
||||||
@ -228,8 +229,8 @@ class TenantAccountJoin(db.Model):
|
|||||||
current = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
current = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
role = db.Column(db.String(16), nullable=False, server_default="normal")
|
role = db.Column(db.String(16), nullable=False, server_default="normal")
|
||||||
invited_by = db.Column(StringUUID, nullable=True)
|
invited_by = db.Column(StringUUID, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class AccountIntegrate(db.Model):
|
class AccountIntegrate(db.Model):
|
||||||
@ -245,8 +246,8 @@ class AccountIntegrate(db.Model):
|
|||||||
provider = db.Column(db.String(16), nullable=False)
|
provider = db.Column(db.String(16), nullable=False)
|
||||||
open_id = db.Column(db.String(255), nullable=False)
|
open_id = db.Column(db.String(255), nullable=False)
|
||||||
encrypted_token = db.Column(db.String(255), nullable=False)
|
encrypted_token = db.Column(db.String(255), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class InvitationCode(db.Model):
|
class InvitationCode(db.Model):
|
||||||
@ -265,4 +266,4 @@ class InvitationCode(db.Model):
|
|||||||
used_by_tenant_id = db.Column(StringUUID)
|
used_by_tenant_id = db.Column(StringUUID)
|
||||||
used_by_account_id = db.Column(StringUUID)
|
used_by_account_id = db.Column(StringUUID)
|
||||||
deprecated_at = db.Column(db.DateTime)
|
deprecated_at = db.Column(db.DateTime)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import enum
|
import enum
|
||||||
|
|
||||||
|
from sqlalchemy import func
|
||||||
|
|
||||||
from .engine import db
|
from .engine import db
|
||||||
from .types import StringUUID
|
from .types import StringUUID
|
||||||
|
|
||||||
@ -23,4 +25,4 @@ class APIBasedExtension(db.Model):
|
|||||||
name = db.Column(db.String(255), nullable=False)
|
name = db.Column(db.String(255), nullable=False)
|
||||||
api_endpoint = db.Column(db.String(255), nullable=False)
|
api_endpoint = db.Column(db.String(255), nullable=False)
|
||||||
api_key = db.Column(db.Text, nullable=False)
|
api_key = db.Column(db.Text, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
@ -50,9 +50,9 @@ class Dataset(db.Model):
|
|||||||
indexing_technique = db.Column(db.String(255), nullable=True)
|
indexing_technique = db.Column(db.String(255), nullable=True)
|
||||||
index_struct = db.Column(db.Text, nullable=True)
|
index_struct = db.Column(db.Text, nullable=True)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_by = db.Column(StringUUID, nullable=True)
|
updated_by = db.Column(StringUUID, nullable=True)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
embedding_model = db.Column(db.String(255), nullable=True)
|
embedding_model = db.Column(db.String(255), nullable=True)
|
||||||
embedding_model_provider = db.Column(db.String(255), nullable=True)
|
embedding_model_provider = db.Column(db.String(255), nullable=True)
|
||||||
collection_binding_id = db.Column(StringUUID, nullable=True)
|
collection_binding_id = db.Column(StringUUID, nullable=True)
|
||||||
@ -212,7 +212,7 @@ class DatasetProcessRule(db.Model):
|
|||||||
mode = db.Column(db.String(255), nullable=False, server_default=db.text("'automatic'::character varying"))
|
mode = db.Column(db.String(255), nullable=False, server_default=db.text("'automatic'::character varying"))
|
||||||
rules = db.Column(db.Text, nullable=True)
|
rules = db.Column(db.Text, nullable=True)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
MODES = ["automatic", "custom"]
|
MODES = ["automatic", "custom"]
|
||||||
PRE_PROCESSING_RULES = ["remove_stopwords", "remove_extra_spaces", "remove_urls_emails"]
|
PRE_PROCESSING_RULES = ["remove_stopwords", "remove_extra_spaces", "remove_urls_emails"]
|
||||||
@ -264,7 +264,7 @@ class Document(db.Model):
|
|||||||
created_from = db.Column(db.String(255), nullable=False)
|
created_from = db.Column(db.String(255), nullable=False)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_api_request_id = db.Column(StringUUID, nullable=True)
|
created_api_request_id = db.Column(StringUUID, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
# start processing
|
# start processing
|
||||||
processing_started_at = db.Column(db.DateTime, nullable=True)
|
processing_started_at = db.Column(db.DateTime, nullable=True)
|
||||||
@ -303,7 +303,7 @@ class Document(db.Model):
|
|||||||
archived_reason = db.Column(db.String(255), nullable=True)
|
archived_reason = db.Column(db.String(255), nullable=True)
|
||||||
archived_by = db.Column(StringUUID, nullable=True)
|
archived_by = db.Column(StringUUID, nullable=True)
|
||||||
archived_at = db.Column(db.DateTime, nullable=True)
|
archived_at = db.Column(db.DateTime, nullable=True)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
doc_type = db.Column(db.String(40), nullable=True)
|
doc_type = db.Column(db.String(40), nullable=True)
|
||||||
doc_metadata = db.Column(db.JSON, nullable=True)
|
doc_metadata = db.Column(db.JSON, nullable=True)
|
||||||
doc_form = db.Column(db.String(255), nullable=False, server_default=db.text("'text_model'::character varying"))
|
doc_form = db.Column(db.String(255), nullable=False, server_default=db.text("'text_model'::character varying"))
|
||||||
@ -527,9 +527,9 @@ class DocumentSegment(db.Model):
|
|||||||
disabled_by = db.Column(StringUUID, nullable=True)
|
disabled_by = db.Column(StringUUID, nullable=True)
|
||||||
status = db.Column(db.String(255), nullable=False, server_default=db.text("'waiting'::character varying"))
|
status = db.Column(db.String(255), nullable=False, server_default=db.text("'waiting'::character varying"))
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_by = db.Column(StringUUID, nullable=True)
|
updated_by = db.Column(StringUUID, nullable=True)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
indexing_at = db.Column(db.DateTime, nullable=True)
|
indexing_at = db.Column(db.DateTime, nullable=True)
|
||||||
completed_at = db.Column(db.DateTime, nullable=True)
|
completed_at = db.Column(db.DateTime, nullable=True)
|
||||||
error = db.Column(db.Text, nullable=True)
|
error = db.Column(db.Text, nullable=True)
|
||||||
@ -697,7 +697,7 @@ class Embedding(db.Model):
|
|||||||
)
|
)
|
||||||
hash = db.Column(db.String(64), nullable=False)
|
hash = db.Column(db.String(64), nullable=False)
|
||||||
embedding = db.Column(db.LargeBinary, nullable=False)
|
embedding = db.Column(db.LargeBinary, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
provider_name = db.Column(db.String(255), nullable=False, server_default=db.text("''::character varying"))
|
provider_name = db.Column(db.String(255), nullable=False, server_default=db.text("''::character varying"))
|
||||||
|
|
||||||
def set_embedding(self, embedding_data: list[float]):
|
def set_embedding(self, embedding_data: list[float]):
|
||||||
@ -719,7 +719,7 @@ class DatasetCollectionBinding(db.Model):
|
|||||||
model_name = db.Column(db.String(255), nullable=False)
|
model_name = db.Column(db.String(255), nullable=False)
|
||||||
type = db.Column(db.String(40), server_default=db.text("'dataset'::character varying"), nullable=False)
|
type = db.Column(db.String(40), server_default=db.text("'dataset'::character varying"), nullable=False)
|
||||||
collection_name = db.Column(db.String(64), nullable=False)
|
collection_name = db.Column(db.String(64), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class TidbAuthBinding(db.Model):
|
class TidbAuthBinding(db.Model):
|
||||||
@ -739,7 +739,7 @@ class TidbAuthBinding(db.Model):
|
|||||||
status = db.Column(db.String(255), nullable=False, server_default=db.text("CREATING"))
|
status = db.Column(db.String(255), nullable=False, server_default=db.text("CREATING"))
|
||||||
account = db.Column(db.String(255), nullable=False)
|
account = db.Column(db.String(255), nullable=False)
|
||||||
password = db.Column(db.String(255), nullable=False)
|
password = db.Column(db.String(255), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class Whitelist(db.Model):
|
class Whitelist(db.Model):
|
||||||
@ -751,7 +751,7 @@ class Whitelist(db.Model):
|
|||||||
id = db.Column(StringUUID, primary_key=True, server_default=db.text("uuid_generate_v4()"))
|
id = db.Column(StringUUID, primary_key=True, server_default=db.text("uuid_generate_v4()"))
|
||||||
tenant_id = db.Column(StringUUID, nullable=True)
|
tenant_id = db.Column(StringUUID, nullable=True)
|
||||||
category = db.Column(db.String(255), nullable=False)
|
category = db.Column(db.String(255), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class DatasetPermission(db.Model):
|
class DatasetPermission(db.Model):
|
||||||
@ -768,7 +768,7 @@ class DatasetPermission(db.Model):
|
|||||||
account_id = db.Column(StringUUID, nullable=False)
|
account_id = db.Column(StringUUID, nullable=False)
|
||||||
tenant_id = db.Column(StringUUID, nullable=False)
|
tenant_id = db.Column(StringUUID, nullable=False)
|
||||||
has_permission = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
has_permission = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class ExternalKnowledgeApis(db.Model):
|
class ExternalKnowledgeApis(db.Model):
|
||||||
@ -785,9 +785,9 @@ class ExternalKnowledgeApis(db.Model):
|
|||||||
tenant_id = db.Column(StringUUID, nullable=False)
|
tenant_id = db.Column(StringUUID, nullable=False)
|
||||||
settings = db.Column(db.Text, nullable=True)
|
settings = db.Column(db.Text, nullable=True)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_by = db.Column(StringUUID, nullable=True)
|
updated_by = db.Column(StringUUID, nullable=True)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
return {
|
return {
|
||||||
@ -840,6 +840,6 @@ class ExternalKnowledgeBindings(db.Model):
|
|||||||
dataset_id = db.Column(StringUUID, nullable=False)
|
dataset_id = db.Column(StringUUID, nullable=False)
|
||||||
external_knowledge_id = db.Column(db.Text, nullable=False)
|
external_knowledge_id = db.Column(db.Text, nullable=False)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_by = db.Column(StringUUID, nullable=True)
|
updated_by = db.Column(StringUUID, nullable=True)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
@ -30,7 +30,7 @@ class DifySetup(db.Model):
|
|||||||
__table_args__ = (db.PrimaryKeyConstraint("version", name="dify_setup_pkey"),)
|
__table_args__ = (db.PrimaryKeyConstraint("version", name="dify_setup_pkey"),)
|
||||||
|
|
||||||
version = db.Column(db.String(255), nullable=False)
|
version = db.Column(db.String(255), nullable=False)
|
||||||
setup_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
setup_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class AppMode(StrEnum):
|
class AppMode(StrEnum):
|
||||||
@ -85,9 +85,9 @@ class App(db.Model):
|
|||||||
tracing = db.Column(db.Text, nullable=True)
|
tracing = db.Column(db.Text, nullable=True)
|
||||||
max_active_requests = db.Column(db.Integer, nullable=True)
|
max_active_requests = db.Column(db.Integer, nullable=True)
|
||||||
created_by = db.Column(StringUUID, nullable=True)
|
created_by = db.Column(StringUUID, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_by = db.Column(StringUUID, nullable=True)
|
updated_by = db.Column(StringUUID, nullable=True)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
use_icon_as_answer_icon = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
use_icon_as_answer_icon = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -226,9 +226,9 @@ class AppModelConfig(db.Model):
|
|||||||
model_id = db.Column(db.String(255), nullable=True)
|
model_id = db.Column(db.String(255), nullable=True)
|
||||||
configs = db.Column(db.JSON, nullable=True)
|
configs = db.Column(db.JSON, nullable=True)
|
||||||
created_by = db.Column(StringUUID, nullable=True)
|
created_by = db.Column(StringUUID, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_by = db.Column(StringUUID, nullable=True)
|
updated_by = db.Column(StringUUID, nullable=True)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
opening_statement = db.Column(db.Text)
|
opening_statement = db.Column(db.Text)
|
||||||
suggested_questions = db.Column(db.Text)
|
suggested_questions = db.Column(db.Text)
|
||||||
suggested_questions_after_answer = db.Column(db.Text)
|
suggested_questions_after_answer = db.Column(db.Text)
|
||||||
@ -482,8 +482,8 @@ class RecommendedApp(db.Model):
|
|||||||
is_listed = db.Column(db.Boolean, nullable=False, default=True)
|
is_listed = db.Column(db.Boolean, nullable=False, default=True)
|
||||||
install_count = db.Column(db.Integer, nullable=False, default=0)
|
install_count = db.Column(db.Integer, nullable=False, default=0)
|
||||||
language = db.Column(db.String(255), nullable=False, server_default=db.text("'en-US'::character varying"))
|
language = db.Column(db.String(255), nullable=False, server_default=db.text("'en-US'::character varying"))
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def app(self):
|
def app(self):
|
||||||
@ -507,7 +507,7 @@ class InstalledApp(db.Model):
|
|||||||
position = db.Column(db.Integer, nullable=False, default=0)
|
position = db.Column(db.Integer, nullable=False, default=0)
|
||||||
is_pinned = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
is_pinned = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
last_used_at = db.Column(db.DateTime, nullable=True)
|
last_used_at = db.Column(db.DateTime, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def app(self):
|
def app(self):
|
||||||
@ -548,8 +548,8 @@ class Conversation(db.Model):
|
|||||||
read_at = db.Column(db.DateTime)
|
read_at = db.Column(db.DateTime)
|
||||||
read_account_id = db.Column(StringUUID)
|
read_account_id = db.Column(StringUUID)
|
||||||
dialogue_count: Mapped[int] = mapped_column(default=0)
|
dialogue_count: Mapped[int] = mapped_column(default=0)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
messages = db.relationship("Message", backref="conversation", lazy="select", passive_deletes="all")
|
messages = db.relationship("Message", backref="conversation", lazy="select", passive_deletes="all")
|
||||||
message_annotations = db.relationship(
|
message_annotations = db.relationship(
|
||||||
@ -791,8 +791,8 @@ class Message(db.Model):
|
|||||||
from_source = db.Column(db.String(255), nullable=False)
|
from_source = db.Column(db.String(255), nullable=False)
|
||||||
from_end_user_id: Mapped[Optional[str]] = db.Column(StringUUID)
|
from_end_user_id: Mapped[Optional[str]] = db.Column(StringUUID)
|
||||||
from_account_id: Mapped[Optional[str]] = db.Column(StringUUID)
|
from_account_id: Mapped[Optional[str]] = db.Column(StringUUID)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
agent_based = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
agent_based = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
workflow_run_id = db.Column(StringUUID)
|
workflow_run_id = db.Column(StringUUID)
|
||||||
|
|
||||||
@ -1117,8 +1117,8 @@ class MessageFeedback(db.Model):
|
|||||||
from_source = db.Column(db.String(255), nullable=False)
|
from_source = db.Column(db.String(255), nullable=False)
|
||||||
from_end_user_id = db.Column(StringUUID)
|
from_end_user_id = db.Column(StringUUID)
|
||||||
from_account_id = db.Column(StringUUID)
|
from_account_id = db.Column(StringUUID)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def from_account(self):
|
def from_account(self):
|
||||||
@ -1164,9 +1164,7 @@ class MessageFile(db.Model):
|
|||||||
upload_file_id: Mapped[Optional[str]] = db.Column(StringUUID, nullable=True)
|
upload_file_id: Mapped[Optional[str]] = db.Column(StringUUID, nullable=True)
|
||||||
created_by_role: Mapped[str] = db.Column(db.String(255), nullable=False)
|
created_by_role: Mapped[str] = db.Column(db.String(255), nullable=False)
|
||||||
created_by: Mapped[str] = db.Column(StringUUID, nullable=False)
|
created_by: Mapped[str] = db.Column(StringUUID, nullable=False)
|
||||||
created_at: Mapped[datetime] = db.Column(
|
created_at: Mapped[datetime] = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class MessageAnnotation(db.Model):
|
class MessageAnnotation(db.Model):
|
||||||
@ -1186,8 +1184,8 @@ class MessageAnnotation(db.Model):
|
|||||||
content = db.Column(db.Text, nullable=False)
|
content = db.Column(db.Text, nullable=False)
|
||||||
hit_count = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
|
hit_count = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
|
||||||
account_id = db.Column(StringUUID, nullable=False)
|
account_id = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def account(self):
|
def account(self):
|
||||||
@ -1216,7 +1214,7 @@ class AppAnnotationHitHistory(db.Model):
|
|||||||
source = db.Column(db.Text, nullable=False)
|
source = db.Column(db.Text, nullable=False)
|
||||||
question = db.Column(db.Text, nullable=False)
|
question = db.Column(db.Text, nullable=False)
|
||||||
account_id = db.Column(StringUUID, nullable=False)
|
account_id = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
score = db.Column(Float, nullable=False, server_default=db.text("0"))
|
score = db.Column(Float, nullable=False, server_default=db.text("0"))
|
||||||
message_id = db.Column(StringUUID, nullable=False)
|
message_id = db.Column(StringUUID, nullable=False)
|
||||||
annotation_question = db.Column(db.Text, nullable=False)
|
annotation_question = db.Column(db.Text, nullable=False)
|
||||||
@ -1250,9 +1248,9 @@ class AppAnnotationSetting(db.Model):
|
|||||||
score_threshold = db.Column(Float, nullable=False, server_default=db.text("0"))
|
score_threshold = db.Column(Float, nullable=False, server_default=db.text("0"))
|
||||||
collection_binding_id = db.Column(StringUUID, nullable=False)
|
collection_binding_id = db.Column(StringUUID, nullable=False)
|
||||||
created_user_id = db.Column(StringUUID, nullable=False)
|
created_user_id = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_user_id = db.Column(StringUUID, nullable=False)
|
updated_user_id = db.Column(StringUUID, nullable=False)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def created_account(self):
|
def created_account(self):
|
||||||
@ -1298,9 +1296,9 @@ class OperationLog(db.Model):
|
|||||||
account_id = db.Column(StringUUID, nullable=False)
|
account_id = db.Column(StringUUID, nullable=False)
|
||||||
action = db.Column(db.String(255), nullable=False)
|
action = db.Column(db.String(255), nullable=False)
|
||||||
content = db.Column(db.JSON)
|
content = db.Column(db.JSON)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
created_ip = db.Column(db.String(255), nullable=False)
|
created_ip = db.Column(db.String(255), nullable=False)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class EndUser(UserMixin, db.Model):
|
class EndUser(UserMixin, db.Model):
|
||||||
@ -1319,8 +1317,8 @@ class EndUser(UserMixin, db.Model):
|
|||||||
name = db.Column(db.String(255))
|
name = db.Column(db.String(255))
|
||||||
is_anonymous = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
is_anonymous = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
||||||
session_id = db.Column(db.String(255), nullable=False)
|
session_id = db.Column(db.String(255), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class Site(db.Model):
|
class Site(db.Model):
|
||||||
@ -1351,9 +1349,9 @@ class Site(db.Model):
|
|||||||
prompt_public = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
prompt_public = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying"))
|
status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying"))
|
||||||
created_by = db.Column(StringUUID, nullable=True)
|
created_by = db.Column(StringUUID, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_by = db.Column(StringUUID, nullable=True)
|
updated_by = db.Column(StringUUID, nullable=True)
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
code = db.Column(db.String(255))
|
code = db.Column(db.String(255))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -1395,7 +1393,7 @@ class ApiToken(db.Model):
|
|||||||
type = db.Column(db.String(16), nullable=False)
|
type = db.Column(db.String(16), nullable=False)
|
||||||
token = db.Column(db.String(255), nullable=False)
|
token = db.Column(db.String(255), nullable=False)
|
||||||
last_used_at = db.Column(db.DateTime, nullable=True)
|
last_used_at = db.Column(db.DateTime, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generate_api_key(prefix, n):
|
def generate_api_key(prefix, n):
|
||||||
@ -1426,9 +1424,7 @@ class UploadFile(db.Model):
|
|||||||
db.String(255), nullable=False, server_default=db.text("'account'::character varying")
|
db.String(255), nullable=False, server_default=db.text("'account'::character varying")
|
||||||
)
|
)
|
||||||
created_by: Mapped[str] = db.Column(StringUUID, nullable=False)
|
created_by: Mapped[str] = db.Column(StringUUID, nullable=False)
|
||||||
created_at: Mapped[datetime] = db.Column(
|
created_at: Mapped[datetime] = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")
|
|
||||||
)
|
|
||||||
used: Mapped[bool] = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
used: Mapped[bool] = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
used_by: Mapped[str | None] = db.Column(StringUUID, nullable=True)
|
used_by: Mapped[str | None] = db.Column(StringUUID, nullable=True)
|
||||||
used_at: Mapped[datetime | None] = db.Column(db.DateTime, nullable=True)
|
used_at: Mapped[datetime | None] = db.Column(db.DateTime, nullable=True)
|
||||||
@ -1485,7 +1481,7 @@ class ApiRequest(db.Model):
|
|||||||
request = db.Column(db.Text, nullable=True)
|
request = db.Column(db.Text, nullable=True)
|
||||||
response = db.Column(db.Text, nullable=True)
|
response = db.Column(db.Text, nullable=True)
|
||||||
ip = db.Column(db.String(255), nullable=False)
|
ip = db.Column(db.String(255), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class MessageChain(db.Model):
|
class MessageChain(db.Model):
|
||||||
@ -1657,7 +1653,7 @@ class Tag(db.Model):
|
|||||||
type = db.Column(db.String(16), nullable=False)
|
type = db.Column(db.String(16), nullable=False)
|
||||||
name = db.Column(db.String(255), nullable=False)
|
name = db.Column(db.String(255), nullable=False)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class TagBinding(db.Model):
|
class TagBinding(db.Model):
|
||||||
@ -1673,7 +1669,7 @@ class TagBinding(db.Model):
|
|||||||
tag_id = db.Column(StringUUID, nullable=True)
|
tag_id = db.Column(StringUUID, nullable=True)
|
||||||
target_id = db.Column(StringUUID, nullable=True)
|
target_id = db.Column(StringUUID, nullable=True)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class TraceAppConfig(db.Model):
|
class TraceAppConfig(db.Model):
|
||||||
@ -1687,8 +1683,10 @@ class TraceAppConfig(db.Model):
|
|||||||
app_id = db.Column(StringUUID, nullable=False)
|
app_id = db.Column(StringUUID, nullable=False)
|
||||||
tracing_provider = db.Column(db.String(255), nullable=True)
|
tracing_provider = db.Column(db.String(255), nullable=True)
|
||||||
tracing_config = db.Column(db.JSON, nullable=True)
|
tracing_config = db.Column(db.JSON, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=func.now())
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.now(), onupdate=func.now())
|
updated_at = db.Column(
|
||||||
|
db.DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp()
|
||||||
|
)
|
||||||
is_active = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
is_active = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
from sqlalchemy import func
|
||||||
|
|
||||||
from .engine import db
|
from .engine import db
|
||||||
from .types import StringUUID
|
from .types import StringUUID
|
||||||
|
|
||||||
@ -60,8 +62,8 @@ class Provider(db.Model):
|
|||||||
quota_limit = db.Column(db.BigInteger, nullable=True)
|
quota_limit = db.Column(db.BigInteger, nullable=True)
|
||||||
quota_used = db.Column(db.BigInteger, default=0)
|
quota_used = db.Column(db.BigInteger, default=0)
|
||||||
|
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return (
|
return (
|
||||||
@ -108,8 +110,8 @@ class ProviderModel(db.Model):
|
|||||||
model_type = db.Column(db.String(40), nullable=False)
|
model_type = db.Column(db.String(40), nullable=False)
|
||||||
encrypted_config = db.Column(db.Text, nullable=True)
|
encrypted_config = db.Column(db.Text, nullable=True)
|
||||||
is_valid = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
is_valid = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class TenantDefaultModel(db.Model):
|
class TenantDefaultModel(db.Model):
|
||||||
@ -124,8 +126,8 @@ class TenantDefaultModel(db.Model):
|
|||||||
provider_name = db.Column(db.String(255), nullable=False)
|
provider_name = db.Column(db.String(255), nullable=False)
|
||||||
model_name = db.Column(db.String(255), nullable=False)
|
model_name = db.Column(db.String(255), nullable=False)
|
||||||
model_type = db.Column(db.String(40), nullable=False)
|
model_type = db.Column(db.String(40), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class TenantPreferredModelProvider(db.Model):
|
class TenantPreferredModelProvider(db.Model):
|
||||||
@ -139,8 +141,8 @@ class TenantPreferredModelProvider(db.Model):
|
|||||||
tenant_id = db.Column(StringUUID, nullable=False)
|
tenant_id = db.Column(StringUUID, nullable=False)
|
||||||
provider_name = db.Column(db.String(255), nullable=False)
|
provider_name = db.Column(db.String(255), nullable=False)
|
||||||
preferred_provider_type = db.Column(db.String(40), nullable=False)
|
preferred_provider_type = db.Column(db.String(40), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class ProviderOrder(db.Model):
|
class ProviderOrder(db.Model):
|
||||||
@ -164,8 +166,8 @@ class ProviderOrder(db.Model):
|
|||||||
paid_at = db.Column(db.DateTime)
|
paid_at = db.Column(db.DateTime)
|
||||||
pay_failed_at = db.Column(db.DateTime)
|
pay_failed_at = db.Column(db.DateTime)
|
||||||
refunded_at = db.Column(db.DateTime)
|
refunded_at = db.Column(db.DateTime)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class ProviderModelSetting(db.Model):
|
class ProviderModelSetting(db.Model):
|
||||||
@ -186,8 +188,8 @@ class ProviderModelSetting(db.Model):
|
|||||||
model_type = db.Column(db.String(40), nullable=False)
|
model_type = db.Column(db.String(40), nullable=False)
|
||||||
enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
||||||
load_balancing_enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
load_balancing_enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class LoadBalancingModelConfig(db.Model):
|
class LoadBalancingModelConfig(db.Model):
|
||||||
@ -209,5 +211,5 @@ class LoadBalancingModelConfig(db.Model):
|
|||||||
name = db.Column(db.String(255), nullable=False)
|
name = db.Column(db.String(255), nullable=False)
|
||||||
encrypted_config = db.Column(db.Text, nullable=True)
|
encrypted_config = db.Column(db.Text, nullable=True)
|
||||||
enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
|
from sqlalchemy import func
|
||||||
from sqlalchemy.dialects.postgresql import JSONB
|
from sqlalchemy.dialects.postgresql import JSONB
|
||||||
|
|
||||||
from .engine import db
|
from .engine import db
|
||||||
@ -19,8 +20,8 @@ class DataSourceOauthBinding(db.Model):
|
|||||||
access_token = db.Column(db.String(255), nullable=False)
|
access_token = db.Column(db.String(255), nullable=False)
|
||||||
provider = db.Column(db.String(255), nullable=False)
|
provider = db.Column(db.String(255), nullable=False)
|
||||||
source_info = db.Column(JSONB, nullable=False)
|
source_info = db.Column(JSONB, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false"))
|
disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false"))
|
||||||
|
|
||||||
|
|
||||||
@ -37,8 +38,8 @@ class DataSourceApiKeyAuthBinding(db.Model):
|
|||||||
category = db.Column(db.String(255), nullable=False)
|
category = db.Column(db.String(255), nullable=False)
|
||||||
provider = db.Column(db.String(255), nullable=False)
|
provider = db.Column(db.String(255), nullable=False)
|
||||||
credentials = db.Column(db.Text, nullable=True) # JSON
|
credentials = db.Column(db.Text, nullable=True) # JSON
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false"))
|
disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false"))
|
||||||
|
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
|
@ -2,7 +2,7 @@ import json
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from sqlalchemy import ForeignKey
|
from sqlalchemy import ForeignKey, func
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
from core.tools.entities.common_entities import I18nObject
|
from core.tools.entities.common_entities import I18nObject
|
||||||
@ -36,8 +36,8 @@ class BuiltinToolProvider(db.Model):
|
|||||||
provider = db.Column(db.String(40), nullable=False)
|
provider = db.Column(db.String(40), nullable=False)
|
||||||
# credential of the tool provider
|
# credential of the tool provider
|
||||||
encrypted_credentials = db.Column(db.Text, nullable=True)
|
encrypted_credentials = db.Column(db.Text, nullable=True)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def credentials(self) -> dict:
|
def credentials(self) -> dict:
|
||||||
@ -74,8 +74,8 @@ class PublishedAppTool(db.Model):
|
|||||||
tool_name = db.Column(db.String(40), nullable=False)
|
tool_name = db.Column(db.String(40), nullable=False)
|
||||||
# author
|
# author
|
||||||
author = db.Column(db.String(40), nullable=False)
|
author = db.Column(db.String(40), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def description_i18n(self) -> I18nObject:
|
def description_i18n(self) -> I18nObject:
|
||||||
@ -120,8 +120,8 @@ class ApiToolProvider(db.Model):
|
|||||||
# custom_disclaimer
|
# custom_disclaimer
|
||||||
custom_disclaimer: Mapped[str] = mapped_column(sa.TEXT, default="")
|
custom_disclaimer: Mapped[str] = mapped_column(sa.TEXT, default="")
|
||||||
|
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def schema_type(self) -> ApiProviderSchemaType:
|
def schema_type(self) -> ApiProviderSchemaType:
|
||||||
@ -198,8 +198,8 @@ class WorkflowToolProvider(db.Model):
|
|||||||
# privacy policy
|
# privacy policy
|
||||||
privacy_policy = db.Column(db.String(255), nullable=True, server_default="")
|
privacy_policy = db.Column(db.String(255), nullable=True, server_default="")
|
||||||
|
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def user(self) -> Account | None:
|
def user(self) -> Account | None:
|
||||||
@ -251,8 +251,8 @@ class ToolModelInvoke(db.Model):
|
|||||||
provider_response_latency = db.Column(db.Float, nullable=False, server_default=db.text("0"))
|
provider_response_latency = db.Column(db.Float, nullable=False, server_default=db.text("0"))
|
||||||
total_price = db.Column(db.Numeric(10, 7))
|
total_price = db.Column(db.Numeric(10, 7))
|
||||||
currency = db.Column(db.String(255), nullable=False)
|
currency = db.Column(db.String(255), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
|
|
||||||
class ToolConversationVariables(db.Model):
|
class ToolConversationVariables(db.Model):
|
||||||
@ -278,8 +278,8 @@ class ToolConversationVariables(db.Model):
|
|||||||
# variables pool
|
# variables pool
|
||||||
variables_str = db.Column(db.Text, nullable=False)
|
variables_str = db.Column(db.Text, nullable=False)
|
||||||
|
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def variables(self) -> dict:
|
def variables(self) -> dict:
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
from sqlalchemy import func
|
||||||
|
|
||||||
from .engine import db
|
from .engine import db
|
||||||
from .model import Message
|
from .model import Message
|
||||||
from .types import StringUUID
|
from .types import StringUUID
|
||||||
@ -15,7 +17,7 @@ class SavedMessage(db.Model):
|
|||||||
message_id = db.Column(StringUUID, nullable=False)
|
message_id = db.Column(StringUUID, nullable=False)
|
||||||
created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying"))
|
created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying"))
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def message(self):
|
def message(self):
|
||||||
@ -34,4 +36,4 @@ class PinnedConversation(db.Model):
|
|||||||
conversation_id = db.Column(StringUUID, nullable=False)
|
conversation_id = db.Column(StringUUID, nullable=False)
|
||||||
created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying"))
|
created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying"))
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
from collections.abc import Mapping, Sequence
|
from collections.abc import Mapping, Sequence
|
||||||
from datetime import UTC, datetime
|
from datetime import datetime
|
||||||
from enum import Enum, StrEnum
|
from enum import Enum, StrEnum
|
||||||
from typing import Any, Optional, Union
|
from typing import Any, Optional, Union
|
||||||
|
|
||||||
@ -103,12 +103,10 @@ class Workflow(db.Model):
|
|||||||
graph: Mapped[str] = mapped_column(sa.Text)
|
graph: Mapped[str] = mapped_column(sa.Text)
|
||||||
_features: Mapped[str] = mapped_column("features", sa.TEXT)
|
_features: Mapped[str] = mapped_column("features", sa.TEXT)
|
||||||
created_by: Mapped[str] = mapped_column(StringUUID, nullable=False)
|
created_by: Mapped[str] = mapped_column(StringUUID, nullable=False)
|
||||||
created_at: Mapped[datetime] = mapped_column(
|
created_at: Mapped[datetime] = mapped_column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")
|
|
||||||
)
|
|
||||||
updated_by: Mapped[Optional[str]] = mapped_column(StringUUID)
|
updated_by: Mapped[Optional[str]] = mapped_column(StringUUID)
|
||||||
updated_at: Mapped[datetime] = mapped_column(
|
updated_at: Mapped[datetime] = mapped_column(
|
||||||
sa.DateTime, nullable=False, default=datetime.now(tz=UTC), server_onupdate=func.current_timestamp()
|
db.DateTime, nullable=False, server_default=func.current_timestamp(), server_onupdate=func.current_timestamp()
|
||||||
)
|
)
|
||||||
_environment_variables: Mapped[str] = mapped_column(
|
_environment_variables: Mapped[str] = mapped_column(
|
||||||
"environment_variables", db.Text, nullable=False, server_default="{}"
|
"environment_variables", db.Text, nullable=False, server_default="{}"
|
||||||
@ -406,7 +404,7 @@ class WorkflowRun(db.Model):
|
|||||||
total_steps = db.Column(db.Integer, server_default=db.text("0"))
|
total_steps = db.Column(db.Integer, server_default=db.text("0"))
|
||||||
created_by_role = db.Column(db.String(255), nullable=False) # account, end_user
|
created_by_role = db.Column(db.String(255), nullable=False) # account, end_user
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
finished_at = db.Column(db.DateTime)
|
finished_at = db.Column(db.DateTime)
|
||||||
exceptions_count = db.Column(db.Integer, server_default=db.text("0"))
|
exceptions_count = db.Column(db.Integer, server_default=db.text("0"))
|
||||||
|
|
||||||
@ -636,7 +634,7 @@ class WorkflowNodeExecution(db.Model):
|
|||||||
error = db.Column(db.Text)
|
error = db.Column(db.Text)
|
||||||
elapsed_time = db.Column(db.Float, nullable=False, server_default=db.text("0"))
|
elapsed_time = db.Column(db.Float, nullable=False, server_default=db.text("0"))
|
||||||
execution_metadata = db.Column(db.Text)
|
execution_metadata = db.Column(db.Text)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
created_by_role = db.Column(db.String(255), nullable=False)
|
created_by_role = db.Column(db.String(255), nullable=False)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
finished_at = db.Column(db.DateTime)
|
finished_at = db.Column(db.DateTime)
|
||||||
@ -755,7 +753,7 @@ class WorkflowAppLog(db.Model):
|
|||||||
created_from = db.Column(db.String(255), nullable=False)
|
created_from = db.Column(db.String(255), nullable=False)
|
||||||
created_by_role = db.Column(db.String(255), nullable=False)
|
created_by_role = db.Column(db.String(255), nullable=False)
|
||||||
created_by = db.Column(StringUUID, nullable=False)
|
created_by = db.Column(StringUUID, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def workflow_run(self):
|
def workflow_run(self):
|
||||||
@ -781,7 +779,7 @@ class ConversationVariable(db.Model):
|
|||||||
conversation_id: Mapped[str] = db.Column(StringUUID, nullable=False, primary_key=True)
|
conversation_id: Mapped[str] = db.Column(StringUUID, nullable=False, primary_key=True)
|
||||||
app_id: Mapped[str] = db.Column(StringUUID, nullable=False, index=True)
|
app_id: Mapped[str] = db.Column(StringUUID, nullable=False, index=True)
|
||||||
data = db.Column(db.Text, nullable=False)
|
data = db.Column(db.Text, nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, index=True, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
created_at = db.Column(db.DateTime, nullable=False, index=True, server_default=func.current_timestamp())
|
||||||
updated_at = db.Column(
|
updated_at = db.Column(
|
||||||
db.DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp()
|
db.DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp()
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user