clearml-server/server/apimodels/auth.py
allegroai 4f2564d33a Add Artifacts support, changed tags to system_tags and added user tags
Add hyper parameter sorting
Add min/max value for all time series metrics
2019-09-24 21:35:41 +03:00

118 lines
2.7 KiB
Python

from jsonmodels.fields import IntField, StringField, BoolField, EmbeddedField, DateTimeField
from jsonmodels.models import Base
from jsonmodels.validators import Max, Enum
from apimodels import ListField, EnumField
from config import config
from database.model.auth import Role
from database.utils import get_options
class GetTokenRequest(Base):
""" User requests a token """
expiration_sec = IntField(
validators=Max(config.get("apiserver.auth.max_expiration_sec")), nullable=True
)
""" Expiration time for token in seconds. """
class GetTaskTokenRequest(GetTokenRequest):
""" User requests a task token """
task = StringField(required=True)
class GetTokenForUserRequest(GetTokenRequest):
""" System requests a token for a user """
user = StringField(required=True)
company = StringField()
class GetTaskTokenForUserRequest(GetTokenForUserRequest):
""" System requests a token for a user, for a specific task """
task = StringField(required=True)
class GetTokenResponse(Base):
token = StringField(required=True)
class ValidateTokenRequest(Base):
token = StringField(required=True)
class ValidateUserRequest(Base):
email = StringField(required=True)
class ValidateResponse(Base):
valid = BoolField(required=True)
msg = StringField()
user = StringField()
company = StringField()
class CreateUserRequest(Base):
name = StringField(required=True)
company = StringField(required=True)
role = StringField(
validators=Enum(*(set(get_options(Role)))),
default=Role.user,
)
email = StringField(required=True)
family_name = StringField()
given_name = StringField()
avatar = StringField()
class CreateUserResponse(Base):
id = StringField(required=True)
class Credentials(Base):
access_key = StringField(required=True)
secret_key = StringField(required=True)
class CredentialsResponse(Credentials):
secret_key = StringField()
last_used = DateTimeField(default=None)
class CreateCredentialsResponse(Base):
credentials = EmbeddedField(Credentials)
class GetCredentialsResponse(Base):
credentials = ListField(CredentialsResponse)
class RevokeCredentialsRequest(Base):
access_key = StringField(required=True)
class RevokeCredentialsResponse(Base):
revoked = IntField(required=True)
class AddUserRequest(CreateUserRequest):
company = StringField()
secret_key = StringField()
class AddUserResponse(CreateUserResponse):
secret = StringField()
class DeleteUserRequest(Base):
user = StringField(required=True)
company = StringField()
class EditUserReq(Base):
user = StringField(required=True)
role = EnumField(Role.get_company_roles())