2024-05-11 03:22:01 +00:00
# Generated by Django 4.1.13 on 2024-05-09 03:16
2017-12-24 15:21:05 +00:00
2024-05-11 03:22:01 +00:00
import common . db . fields
import django . core . validators
2023-01-16 11:02:09 +00:00
from django . db import migrations , models
2024-05-11 03:22:01 +00:00
import django . db . models . deletion
import django . utils . timezone
import terminal . models . component . terminal
import uuid
2023-01-16 11:02:09 +00:00
2017-12-24 15:21:05 +00:00
class Migration ( migrations . Migration ) :
2024-05-11 03:22:01 +00:00
2017-12-24 15:21:05 +00:00
initial = True
dependencies = [
2024-05-11 03:22:01 +00:00
( ' assets ' , ' 0001_initial ' ) ,
2017-12-24 15:21:05 +00:00
]
operations = [
2024-05-11 03:22:01 +00:00
migrations . CreateModel (
name = ' Applet ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' name ' , models . SlugField ( max_length = 128 , unique = True , verbose_name = ' Name ' ) ) ,
( ' display_name ' , models . CharField ( max_length = 128 , verbose_name = ' Display name ' ) ) ,
( ' version ' , models . CharField ( max_length = 16 , verbose_name = ' Version ' ) ) ,
( ' author ' , models . CharField ( max_length = 128 , verbose_name = ' Author ' ) ) ,
( ' edition ' , models . CharField ( choices = [ ( ' community ' , ' Community edition ' ) , ( ' enterprise ' , ' Enterprise ' ) ] , default = ' community ' , max_length = 128 , verbose_name = ' Edition ' ) ) ,
( ' type ' , models . CharField ( choices = [ ( ' general ' , ' General ' ) , ( ' web ' , ' Web ' ) ] , default = ' general ' , max_length = 16 , verbose_name = ' Type ' ) ) ,
( ' is_active ' , models . BooleanField ( default = True , verbose_name = ' Is active ' ) ) ,
( ' builtin ' , models . BooleanField ( default = False , verbose_name = ' Builtin ' ) ) ,
( ' protocols ' , models . JSONField ( default = list , verbose_name = ' Protocol ' ) ) ,
( ' can_concurrent ' , models . BooleanField ( default = False , verbose_name = ' Can concurrent ' ) ) ,
( ' tags ' , models . JSONField ( default = list , verbose_name = ' Tags ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
] ,
options = {
' verbose_name ' : ' Applet ' ,
} ,
) ,
migrations . CreateModel (
name = ' AppletHost ' ,
fields = [
( ' host_ptr ' , models . OneToOneField ( auto_created = True , on_delete = django . db . models . deletion . CASCADE , parent_link = True , primary_key = True , serialize = False , to = ' assets.host ' ) ) ,
( ' deploy_options ' , models . JSONField ( default = dict , verbose_name = ' Deploy options ' ) ) ,
( ' auto_create_accounts ' , models . BooleanField ( default = True , verbose_name = ' Auto create accounts ' ) ) ,
( ' accounts_create_amount ' , models . IntegerField ( default = 100 , verbose_name = ' Accounts create amount ' ) ) ,
( ' inited ' , models . BooleanField ( default = False , verbose_name = ' Inited ' ) ) ,
( ' date_inited ' , models . DateTimeField ( blank = True , null = True , verbose_name = ' Date inited ' ) ) ,
( ' date_synced ' , models . DateTimeField ( blank = True , null = True , verbose_name = ' Date synced ' ) ) ,
( ' using_same_account ' , models . BooleanField ( default = False , verbose_name = ' Using same account ' ) ) ,
] ,
options = {
' verbose_name ' : ' Hosting ' ,
} ,
bases = ( ' assets.host ' , ) ,
) ,
migrations . CreateModel (
name = ' AppletHostDeployment ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' initial ' , models . BooleanField ( default = False , verbose_name = ' Initial ' ) ) ,
( ' status ' , models . CharField ( default = ' pending ' , max_length = 16 , verbose_name = ' Status ' ) ) ,
( ' date_start ' , models . DateTimeField ( db_index = True , null = True , verbose_name = ' Date start ' ) ) ,
( ' date_finished ' , models . DateTimeField ( null = True , verbose_name = ' Date finished ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' task ' , models . UUIDField ( null = True , verbose_name = ' Task ' ) ) ,
] ,
options = {
' ordering ' : ( ' -date_start ' , ) ,
} ,
) ,
migrations . CreateModel (
name = ' AppletPublication ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' status ' , models . CharField ( default = ' pending ' , max_length = 16 , verbose_name = ' Status ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
] ,
) ,
migrations . CreateModel (
name = ' AppProvider ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' name ' , models . CharField ( max_length = 128 , unique = True , verbose_name = ' Name ' ) ) ,
( ' hostname ' , models . CharField ( max_length = 128 , verbose_name = ' Hostname ' ) ) ,
] ,
options = {
' ordering ' : ( ' -date_created ' , ) ,
} ,
) ,
2017-12-24 15:21:05 +00:00
migrations . CreateModel (
name = ' Command ' ,
fields = [
2024-05-11 03:22:01 +00:00
( ' org_id ' , models . CharField ( blank = True , db_index = True , default = ' ' , max_length = 36 , verbose_name = ' Organization ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
2024-05-11 03:22:01 +00:00
( ' user ' , models . CharField ( db_index = True , max_length = 64 , verbose_name = ' User ' ) ) ,
( ' asset ' , models . CharField ( db_index = True , max_length = 128 , verbose_name = ' Asset ' ) ) ,
( ' account ' , models . CharField ( db_index = True , max_length = 64 , verbose_name = ' Account ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' input ' , models . CharField ( db_index = True , max_length = 128 , verbose_name = ' Input ' ) ) ,
( ' output ' , models . CharField ( blank = True , max_length = 1024 , verbose_name = ' Output ' ) ) ,
( ' session ' , models . CharField ( db_index = True , max_length = 36 , verbose_name = ' Session ' ) ) ,
2024-05-11 03:22:01 +00:00
( ' risk_level ' , models . SmallIntegerField ( choices = [ ( 0 , ' Accept ' ) , ( 4 , ' Warning ' ) , ( 5 , ' Reject ' ) , ( 6 , ' Review & Reject ' ) , ( 7 , ' Review & Accept ' ) , ( 8 , ' Review & Cancel ' ) ] , db_index = True , default = 0 , verbose_name = ' Risk level ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' timestamp ' , models . IntegerField ( db_index = True ) ) ,
] ,
options = {
2024-05-11 03:22:01 +00:00
' verbose_name ' : ' Command record ' ,
2017-12-24 15:21:05 +00:00
' db_table ' : ' terminal_command ' ,
' ordering ' : ( ' -timestamp ' , ) ,
} ,
) ,
2024-05-11 03:22:01 +00:00
migrations . CreateModel (
name = ' CommandStorage ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' name ' , models . CharField ( max_length = 128 , unique = True , verbose_name = ' Name ' ) ) ,
( ' meta ' , common . db . fields . EncryptJsonDictTextField ( default = { } ) ) ,
( ' is_default ' , models . BooleanField ( default = False , verbose_name = ' Default storage ' ) ) ,
( ' type ' , models . CharField ( choices = [ ( ' null ' , ' Null ' ) , ( ' server ' , ' Server ' ) , ( ' es ' , ' Elasticsearch ' ) ] , default = ' server ' , max_length = 16 , verbose_name = ' Type ' ) ) ,
] ,
options = {
' verbose_name ' : ' Command storage ' ,
} ,
) ,
migrations . CreateModel (
name = ' Endpoint ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' name ' , models . CharField ( max_length = 128 , unique = True , verbose_name = ' Name ' ) ) ,
( ' host ' , models . CharField ( blank = True , max_length = 256 , verbose_name = ' Host ' ) ) ,
( ' https_port ' , common . db . fields . PortField ( default = 443 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' HTTPS port ' ) ) ,
( ' http_port ' , common . db . fields . PortField ( default = 80 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' HTTP port ' ) ) ,
( ' ssh_port ' , common . db . fields . PortField ( default = 2222 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' SSH port ' ) ) ,
( ' rdp_port ' , common . db . fields . PortField ( default = 3389 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' RDP port ' ) ) ,
( ' mysql_port ' , common . db . fields . PortField ( default = 33061 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' MySQL port ' ) ) ,
( ' mariadb_port ' , common . db . fields . PortField ( default = 33062 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' MariaDB port ' ) ) ,
( ' postgresql_port ' , common . db . fields . PortField ( default = 54320 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' PostgreSQL port ' ) ) ,
( ' redis_port ' , common . db . fields . PortField ( default = 63790 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' Redis port ' ) ) ,
( ' sqlserver_port ' , common . db . fields . PortField ( default = 14330 , validators = [ django . core . validators . MinValueValidator ( 0 ) , django . core . validators . MaxValueValidator ( 65535 ) ] , verbose_name = ' SQLServer port ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
] ,
options = {
' verbose_name ' : ' Endpoint ' ,
' ordering ' : ( ' name ' , ) ,
} ,
) ,
migrations . CreateModel (
name = ' EndpointRule ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' name ' , models . CharField ( max_length = 128 , unique = True , verbose_name = ' Name ' ) ) ,
( ' ip_group ' , models . JSONField ( default = list , verbose_name = ' IP group ' ) ) ,
( ' priority ' , models . IntegerField ( help_text = ' 1-100, the lower the value will be match first ' , unique = True , validators = [ django . core . validators . MinValueValidator ( 1 ) , django . core . validators . MaxValueValidator ( 100 ) ] , verbose_name = ' Priority ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
2024-05-24 06:54:56 +00:00
( ' is_active ' , models . BooleanField ( default = True , verbose_name = ' Active ' ) ) ,
2024-05-11 03:22:01 +00:00
] ,
options = {
' verbose_name ' : ' Endpoint rule ' ,
' ordering ' : ( ' priority ' , ' is_active ' , ' name ' ) ,
} ,
) ,
migrations . CreateModel (
name = ' ReplayStorage ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' name ' , models . CharField ( max_length = 128 , unique = True , verbose_name = ' Name ' ) ) ,
( ' meta ' , common . db . fields . EncryptJsonDictTextField ( default = { } ) ) ,
( ' is_default ' , models . BooleanField ( default = False , verbose_name = ' Default storage ' ) ) ,
( ' type ' , models . CharField ( choices = [ ( ' null ' , ' Null ' ) , ( ' server ' , ' Server ' ) , ( ' s3 ' , ' S3 ' ) , ( ' ceph ' , ' Ceph ' ) , ( ' swift ' , ' Swift ' ) , ( ' oss ' , ' OSS ' ) , ( ' azure ' , ' Azure ' ) , ( ' obs ' , ' OBS ' ) , ( ' cos ' , ' COS ' ) , ( ' sftp ' , ' SFTP ' ) ] , default = ' server ' , max_length = 16 , verbose_name = ' Type ' ) ) ,
] ,
options = {
' verbose_name ' : ' Replay storage ' ,
} ,
) ,
2017-12-24 15:21:05 +00:00
migrations . CreateModel (
name = ' Session ' ,
fields = [
2024-05-11 03:22:01 +00:00
( ' org_id ' , models . CharField ( blank = True , db_index = True , default = ' ' , max_length = 36 , verbose_name = ' Organization ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
2024-05-11 03:22:01 +00:00
( ' user ' , models . CharField ( db_index = True , max_length = 128 , verbose_name = ' User ' ) ) ,
( ' user_id ' , models . CharField ( blank = True , db_index = True , default = ' ' , max_length = 36 ) ) ,
( ' asset ' , models . CharField ( db_index = True , max_length = 128 , verbose_name = ' Asset ' ) ) ,
( ' asset_id ' , models . CharField ( blank = True , db_index = True , default = ' ' , max_length = 36 ) ) ,
( ' account ' , models . CharField ( db_index = True , max_length = 128 , verbose_name = ' Account ' ) ) ,
2024-05-24 06:54:56 +00:00
( ' account_id ' , models . CharField ( db_index = True , max_length = 128 , verbose_name = ' Account ID ' ) ) ,
2024-05-11 03:22:01 +00:00
( ' protocol ' , models . CharField ( db_index = True , default = ' ssh ' , max_length = 16 ) ) ,
( ' login_from ' , models . CharField ( choices = [ ( ' ST ' , ' SSH Terminal ' ) , ( ' RT ' , ' RDP Terminal ' ) , ( ' WT ' , ' Web Terminal ' ) , ( ' DT ' , ' DB Terminal ' ) ] , default = ' ST ' , max_length = 2 , verbose_name = ' Login from ' ) ) ,
( ' type ' , models . CharField ( db_index = True , default = ' normal ' , max_length = 16 ) ) ,
( ' remote_addr ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Remote addr ' ) ) ,
( ' is_success ' , models . BooleanField ( db_index = True , default = True ) ) ,
( ' is_finished ' , models . BooleanField ( db_index = True , default = False ) ) ,
2017-12-24 15:21:05 +00:00
( ' has_replay ' , models . BooleanField ( default = False , verbose_name = ' Replay ' ) ) ,
( ' has_command ' , models . BooleanField ( default = False , verbose_name = ' Command ' ) ) ,
2024-05-11 03:22:01 +00:00
( ' date_start ' , models . DateTimeField ( db_index = True , default = django . utils . timezone . now , verbose_name = ' Date start ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' date_end ' , models . DateTimeField ( null = True , verbose_name = ' Date end ' ) ) ,
2024-05-11 03:22:01 +00:00
( ' comment ' , models . TextField ( blank = True , null = True , verbose_name = ' Comment ' ) ) ,
( ' cmd_amount ' , models . IntegerField ( default = - 1 , verbose_name = ' Command amount ' ) ) ,
( ' error_reason ' , models . CharField ( blank = True , max_length = 128 , verbose_name = ' Error reason ' ) ) ,
2017-12-24 15:21:05 +00:00
] ,
options = {
2024-05-11 03:22:01 +00:00
' verbose_name ' : ' Session record ' ,
2017-12-24 15:21:05 +00:00
' db_table ' : ' terminal_session ' ,
' ordering ' : [ ' -date_start ' ] ,
2024-05-11 03:22:01 +00:00
' permissions ' : [ ( ' monitor_session ' , ' Can monitor session ' ) , ( ' share_session ' , ' Can share session ' ) , ( ' terminate_session ' , ' Can terminate session ' ) , ( ' validate_sessionactionperm ' , ' Can validate session action perm ' ) ] ,
} ,
) ,
migrations . CreateModel (
name = ' SessionJoinRecord ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' org_id ' , models . CharField ( blank = True , db_index = True , default = ' ' , max_length = 36 , verbose_name = ' Organization ' ) ) ,
( ' verify_code ' , models . CharField ( max_length = 16 , verbose_name = ' Verify code ' ) ) ,
( ' date_joined ' , models . DateTimeField ( auto_now_add = True , db_index = True , verbose_name = ' Date joined ' ) ) ,
( ' date_left ' , models . DateTimeField ( db_index = True , null = True , verbose_name = ' Date left ' ) ) ,
( ' remote_addr ' , models . CharField ( blank = True , db_index = True , max_length = 128 , null = True , verbose_name = ' Remote addr ' ) ) ,
( ' login_from ' , models . CharField ( choices = [ ( ' ST ' , ' SSH Terminal ' ) , ( ' RT ' , ' RDP Terminal ' ) , ( ' WT ' , ' Web Terminal ' ) , ( ' DT ' , ' DB Terminal ' ) ] , default = ' WT ' , max_length = 2 , verbose_name = ' Login from ' ) ) ,
( ' is_success ' , models . BooleanField ( db_index = True , default = True , verbose_name = ' Success ' ) ) ,
( ' reason ' , models . CharField ( blank = True , default = ' - ' , max_length = 1024 , null = True , verbose_name = ' Reason ' ) ) ,
( ' is_finished ' , models . BooleanField ( db_index = True , default = False , verbose_name = ' Finished ' ) ) ,
] ,
options = {
' verbose_name ' : ' Session join record ' ,
' ordering ' : ( ' -date_joined ' , ) ,
} ,
) ,
migrations . CreateModel (
name = ' SessionReplay ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
] ,
options = {
' verbose_name ' : ' Session replay ' ,
' permissions ' : [ ( ' upload_sessionreplay ' , ' Can upload session replay ' ) , ( ' download_sessionreplay ' , ' Can download session replay ' ) ] ,
} ,
) ,
migrations . CreateModel (
name = ' SessionSharing ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' org_id ' , models . CharField ( blank = True , db_index = True , default = ' ' , max_length = 36 , verbose_name = ' Organization ' ) ) ,
( ' verify_code ' , models . CharField ( max_length = 16 , verbose_name = ' Verify code ' ) ) ,
( ' is_active ' , models . BooleanField ( db_index = True , default = True , verbose_name = ' Active ' ) ) ,
( ' expired_time ' , models . IntegerField ( db_index = True , default = 0 , verbose_name = ' Expired time (min) ' ) ) ,
( ' users ' , models . TextField ( blank = True , verbose_name = ' User ' ) ) ,
( ' action_permission ' , models . CharField ( default = ' writable ' , max_length = 16 , verbose_name = ' Action permission ' ) ) ,
( ' origin ' , models . URLField ( blank = True , null = True , verbose_name = ' Origin ' ) ) ,
] ,
options = {
' verbose_name ' : ' Session sharing ' ,
' ordering ' : ( ' -date_created ' , ) ,
' permissions ' : [ ( ' add_supersessionsharing ' , ' Can add super session sharing ' ) ] ,
2017-12-24 15:21:05 +00:00
} ,
) ,
migrations . CreateModel (
name = ' Status ' ,
fields = [
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' session_online ' , models . IntegerField ( default = 0 , verbose_name = ' Session Online ' ) ) ,
2024-05-11 03:22:01 +00:00
( ' cpu_load ' , models . FloatField ( default = 0 , verbose_name = ' CPU Load ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' memory_used ' , models . FloatField ( verbose_name = ' Memory Used ' ) ) ,
2024-05-11 03:22:01 +00:00
( ' disk_used ' , models . FloatField ( default = 0 , verbose_name = ' Disk Used ' ) ) ,
( ' connections ' , models . IntegerField ( default = 0 , verbose_name = ' Connections ' ) ) ,
( ' threads ' , models . IntegerField ( default = 0 , verbose_name = ' Threads ' ) ) ,
( ' boot_time ' , models . FloatField ( default = 0 , verbose_name = ' Boot Time ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' date_created ' , models . DateTimeField ( auto_now_add = True ) ) ,
] ,
options = {
2024-05-11 03:22:01 +00:00
' verbose_name ' : ' Status ' ,
2017-12-24 15:21:05 +00:00
' db_table ' : ' terminal_status ' ,
' get_latest_by ' : ' date_created ' ,
} ,
) ,
migrations . CreateModel (
name = ' Task ' ,
fields = [
2024-05-11 03:22:01 +00:00
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
2024-05-11 03:22:01 +00:00
( ' name ' , models . CharField ( choices = [ ( ' kill_session ' , ' Kill session ' ) , ( ' lock_session ' , ' Lock session ' ) , ( ' unlock_session ' , ' Unlock session ' ) ] , max_length = 128 , verbose_name = ' Name ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' args ' , models . CharField ( max_length = 1024 , verbose_name = ' Args ' ) ) ,
2024-05-11 03:22:01 +00:00
( ' kwargs ' , models . JSONField ( default = dict , verbose_name = ' Kwargs ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' is_finished ' , models . BooleanField ( default = False ) ) ,
( ' date_finished ' , models . DateTimeField ( null = True ) ) ,
] ,
options = {
2024-05-11 03:22:01 +00:00
' verbose_name ' : ' Task ' ,
2017-12-24 15:21:05 +00:00
' db_table ' : ' terminal_task ' ,
} ,
) ,
migrations . CreateModel (
name = ' Terminal ' ,
fields = [
2024-05-11 03:22:01 +00:00
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
2024-05-11 03:22:01 +00:00
( ' name ' , models . CharField ( max_length = 128 , verbose_name = ' Name ' ) ) ,
( ' type ' , models . CharField ( choices = [ ( ' koko ' , ' KoKo ' ) , ( ' guacamole ' , ' Guacamole ' ) , ( ' omnidb ' , ' OmniDB ' ) , ( ' xrdp ' , ' Xrdp ' ) , ( ' lion ' , ' Lion ' ) , ( ' core ' , ' Core ' ) , ( ' celery ' , ' Celery ' ) , ( ' magnus ' , ' Magnus ' ) , ( ' razor ' , ' Razor ' ) , ( ' tinker ' , ' Tinker ' ) , ( ' video_worker ' , ' Video Worker ' ) , ( ' chen ' , ' Chen ' ) , ( ' kael ' , ' Kael ' ) , ( ' panda ' , ' Panda ' ) ] , default = ' koko ' , max_length = 64 , verbose_name = ' type ' ) ) ,
( ' remote_addr ' , models . CharField ( blank = True , max_length = 128 , verbose_name = ' Remote Address ' ) ) ,
( ' command_storage ' , models . CharField ( default = ' default ' , max_length = 128 , verbose_name = ' Command storage ' ) ) ,
( ' replay_storage ' , models . CharField ( default = ' default ' , max_length = 128 , verbose_name = ' Replay storage ' ) ) ,
2017-12-24 15:21:05 +00:00
( ' is_deleted ' , models . BooleanField ( default = False ) ) ,
] ,
options = {
2024-05-11 03:22:01 +00:00
' verbose_name ' : ' Terminal ' ,
2017-12-24 15:21:05 +00:00
' db_table ' : ' terminal ' ,
2024-05-11 03:22:01 +00:00
' permissions ' : ( ( ' view_terminalconfig ' , ' Can view terminal config ' ) , ) ,
2017-12-24 15:21:05 +00:00
} ,
2024-05-11 03:22:01 +00:00
bases = ( terminal . models . component . terminal . StorageMixin , terminal . models . component . terminal . TerminalStatusMixin , models . Model ) ,
) ,
migrations . CreateModel (
name = ' VirtualApp ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' name ' , models . SlugField ( max_length = 128 , unique = True , verbose_name = ' Name ' ) ) ,
( ' display_name ' , models . CharField ( max_length = 128 , verbose_name = ' Display name ' ) ) ,
( ' version ' , models . CharField ( max_length = 16 , verbose_name = ' Version ' ) ) ,
( ' author ' , models . CharField ( max_length = 128 , verbose_name = ' Author ' ) ) ,
( ' is_active ' , models . BooleanField ( default = True , verbose_name = ' Is active ' ) ) ,
( ' protocols ' , models . JSONField ( default = list , verbose_name = ' Protocol ' ) ) ,
( ' image_name ' , models . CharField ( max_length = 128 , verbose_name = ' Image name ' ) ) ,
( ' image_protocol ' , models . CharField ( default = ' vnc ' , max_length = 16 , verbose_name = ' Image protocol ' ) ) ,
( ' image_port ' , models . IntegerField ( default = 5900 , verbose_name = ' Image port ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' tags ' , models . JSONField ( default = list , verbose_name = ' Tags ' ) ) ,
] ,
options = {
' verbose_name ' : ' Virtual app ' ,
} ,
) ,
migrations . CreateModel (
name = ' VirtualAppPublication ' ,
fields = [
( ' created_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Created by ' ) ) ,
( ' updated_by ' , models . CharField ( blank = True , max_length = 128 , null = True , verbose_name = ' Updated by ' ) ) ,
( ' date_created ' , models . DateTimeField ( auto_now_add = True , null = True , verbose_name = ' Date created ' ) ) ,
( ' date_updated ' , models . DateTimeField ( auto_now = True , verbose_name = ' Date updated ' ) ) ,
( ' comment ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Comment ' ) ) ,
( ' id ' , models . UUIDField ( default = uuid . uuid4 , primary_key = True , serialize = False ) ) ,
( ' status ' , models . CharField ( default = ' pending ' , max_length = 16 , verbose_name = ' Status ' ) ) ,
( ' app ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' publications ' , to = ' terminal.virtualapp ' , verbose_name = ' Virtual app ' ) ) ,
( ' provider ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' publications ' , to = ' terminal.appprovider ' , verbose_name = ' App Provider ' ) ) ,
] ,
options = {
' verbose_name ' : ' Virtual app publication ' ,
} ,
) ,
migrations . AddField (
model_name = ' virtualapp ' ,
name = ' providers ' ,
field = models . ManyToManyField ( through = ' terminal.VirtualAppPublication ' , to = ' terminal.appprovider ' , verbose_name = ' Providers ' ) ,
2017-12-24 15:21:05 +00:00
) ,
]