class CloudSyncModel(sa.Model): __tablename__ = 'tasks_cloudsync' id = sa.Column(sa.Integer(), primary_key=True) description = sa.Column(sa.String(150)) direction = sa.Column(sa.String(10), default='PUSH') path = sa.Column(sa.String(255)) attributes = sa.Column(sa.JSON()) minute = sa.Column(sa.String(100), default="00") hour = sa.Column(sa.String(100), default="*") daymonth = sa.Column(sa.String(100), default="*") month = sa.Column(sa.String(100), default='*') dayweek = sa.Column(sa.String(100), default="*") enabled = sa.Column(sa.Boolean(), default=True) credential_id = sa.Column(sa.ForeignKey('system_cloudcredentials.id'), index=True) transfer_mode = sa.Column(sa.String(20), default='sync') encryption = sa.Column(sa.Boolean()) filename_encryption = sa.Column(sa.Boolean(), default=True) encryption_password = sa.Column(sa.EncryptedText()) encryption_salt = sa.Column(sa.EncryptedText()) args = sa.Column(sa.Text()) post_script = sa.Column(sa.Text()) pre_script = sa.Column(sa.Text()) snapshot = sa.Column(sa.Boolean()) bwlimit = sa.Column(sa.JSON(type=list)) exclude = sa.Column(sa.JSON(type=list)) transfers = sa.Column(sa.Integer(), nullable=True) follow_symlinks = sa.Column(sa.Boolean())
class ReplicationModel(sa.Model): __tablename__ = 'storage_replication' id = sa.Column(sa.Integer(), primary_key=True) repl_target_dataset = sa.Column(sa.String(120)) repl_recursive = sa.Column(sa.Boolean(), default=False) repl_compression = sa.Column(sa.String(120), nullable=True, default="LZ4") repl_speed_limit = sa.Column(sa.Integer(), nullable=True, default=None) repl_schedule_begin = sa.Column(sa.Time(), nullable=True, default=time(hour=0)) repl_schedule_end = sa.Column(sa.Time(), nullable=True, default=time(hour=23, minute=45)) repl_enabled = sa.Column(sa.Boolean(), default=True) repl_direction = sa.Column(sa.String(120), default="PUSH") repl_transport = sa.Column(sa.String(120), default="SSH") repl_ssh_credentials_id = sa.Column(sa.ForeignKey('system_keychaincredential.id'), index=True, nullable=True) repl_netcat_active_side = sa.Column(sa.String(120), nullable=True, default=None) repl_netcat_active_side_port_min = sa.Column(sa.Integer(), nullable=True) repl_netcat_active_side_port_max = sa.Column(sa.Integer(), nullable=True) repl_source_datasets = sa.Column(sa.JSON(type=list)) repl_exclude = sa.Column(sa.JSON(type=list)) repl_naming_schema = sa.Column(sa.JSON(type=list)) repl_auto = sa.Column(sa.Boolean(), default=True) repl_schedule_minute = sa.Column(sa.String(100), nullable=True, default="00") repl_schedule_hour = sa.Column(sa.String(100), nullable=True, default="*") repl_schedule_daymonth = sa.Column(sa.String(100), nullable=True, default="*") repl_schedule_month = sa.Column(sa.String(100), nullable=True, default='*') repl_schedule_dayweek = sa.Column(sa.String(100), nullable=True, default="*") repl_only_matching_schedule = sa.Column(sa.Boolean()) repl_readonly = sa.Column(sa.String(120)) repl_allow_from_scratch = sa.Column(sa.Boolean()) repl_hold_pending_snapshots = sa.Column(sa.Boolean()) repl_retention_policy = sa.Column(sa.String(120), default="NONE") repl_lifetime_unit = sa.Column(sa.String(120), nullable=True, default='WEEK') repl_lifetime_value = sa.Column(sa.Integer(), nullable=True, default=2) repl_large_block = sa.Column(sa.Boolean(), default=True) repl_embed = sa.Column(sa.Boolean(), default=False) repl_compressed = sa.Column(sa.Boolean(), default=True) repl_retries = sa.Column(sa.Integer(), default=5) repl_restrict_schedule_minute = sa.Column(sa.String(100), nullable=True, default="00") repl_restrict_schedule_hour = sa.Column(sa.String(100), nullable=True, default="*") repl_restrict_schedule_daymonth = sa.Column(sa.String(100), nullable=True, default="*") repl_restrict_schedule_month = sa.Column(sa.String(100), nullable=True, default='*') repl_restrict_schedule_dayweek = sa.Column(sa.String(100), nullable=True, default="*") repl_restrict_schedule_begin = sa.Column(sa.Time(), nullable=True, default=time(hour=0)) repl_restrict_schedule_end = sa.Column(sa.Time(), nullable=True, default=time(hour=23, minute=45)) repl_netcat_active_side_listen_address = sa.Column(sa.String(120), nullable=True, default=None) repl_netcat_passive_side_connect_address = sa.Column(sa.String(120), nullable=True, default=None) repl_logging_level = sa.Column(sa.String(120), nullable=True, default=None) repl_name = sa.Column(sa.String(120)) repl_state = sa.Column(sa.Text(), default="{}") repl_properties = sa.Column(sa.Boolean(), default=True) repl_properties_exclude = sa.Column(sa.JSON(type=list)) repl_properties_override = sa.Column(sa.JSON()) repl_replicate = sa.Column(sa.Boolean()) repl_encryption = sa.Column(sa.Boolean()) repl_encryption_key = sa.Column(sa.EncryptedText(), nullable=True) repl_encryption_key_format = sa.Column(sa.String(120), nullable=True) repl_encryption_key_location = sa.Column(sa.Text(), nullable=True) repl_periodic_snapshot_tasks = sa.relationship('PeriodicSnapshotTaskModel', secondary=lambda: ReplicationPeriodicSnapshotTaskModel.__table__)
class NetworkConfigurationModel(sa.Model): __tablename__ = 'network_globalconfiguration' id = sa.Column(sa.Integer(), primary_key=True) gc_hostname = sa.Column(sa.String(120), default='nas') gc_hostname_b = sa.Column(sa.String(120), nullable=True) gc_domain = sa.Column(sa.String(120), default='local') gc_ipv4gateway = sa.Column(sa.String(42), default='') gc_ipv6gateway = sa.Column(sa.String(45), default='') gc_nameserver1 = sa.Column(sa.String(45), default='') gc_nameserver2 = sa.Column(sa.String(45), default='') gc_nameserver3 = sa.Column(sa.String(45), default='') gc_httpproxy = sa.Column(sa.String(255)) gc_netwait_enabled = sa.Column(sa.Boolean(), default=False) gc_netwait_ip = sa.Column(sa.String(300)) gc_hosts = sa.Column(sa.Text(), default='') gc_domains = sa.Column(sa.Text(), default='') gc_service_announcement = sa.Column(sa.JSON(type=dict), default={ 'mdns': True, 'wsdd': True, "netbios": False }) gc_hostname_virtual = sa.Column(sa.String(120), nullable=True) gc_activity = sa.Column(sa.JSON(type=dict))
class CloudCredentialModel(sa.Model): __tablename__ = 'system_cloudcredentials' id = sa.Column(sa.Integer(), primary_key=True) name = sa.Column(sa.String(100)) provider = sa.Column(sa.String(50)) attributes = sa.Column(sa.JSON(encrypted=True))
class ACMEDNSAuthenticatorModel(sa.Model): __tablename__ = 'system_acmednsauthenticator' id = sa.Column(sa.Integer(), primary_key=True) authenticator = sa.Column(sa.String(64)) name = sa.Column(sa.String(64)) attributes = sa.Column(sa.JSON(encrypted=True))
class SSHModel(sa.Model): __tablename__ = 'services_ssh' id = sa.Column(sa.Integer(), primary_key=True) ssh_bindiface = sa.Column(sa.MultiSelectField(), default=[]) ssh_tcpport = sa.Column(sa.Integer(), default=22) ssh_rootlogin = sa.Column(sa.Boolean(), default=False) ssh_passwordauth = sa.Column(sa.Boolean(), default=False) ssh_kerberosauth = sa.Column(sa.Boolean(), default=False) ssh_tcpfwd = sa.Column(sa.Boolean(), default=False) ssh_compression = sa.Column(sa.Boolean(), default=False) ssh_privatekey = sa.Column(sa.EncryptedText()) ssh_sftp_log_level = sa.Column(sa.String(20)) ssh_sftp_log_facility = sa.Column(sa.String(20)) ssh_host_dsa_key = sa.Column(sa.EncryptedText(), nullable=True) ssh_host_dsa_key_pub = sa.Column(sa.Text(), nullable=True) ssh_host_dsa_key_cert_pub = sa.Column(sa.Text(), nullable=True) ssh_host_ecdsa_key = sa.Column(sa.EncryptedText(), nullable=True) ssh_host_ecdsa_key_pub = sa.Column(sa.Text(), nullable=True) ssh_host_ecdsa_key_cert_pub = sa.Column(sa.Text(), nullable=True) ssh_host_ed25519_key = sa.Column(sa.EncryptedText(), nullable=True) ssh_host_ed25519_key_pub = sa.Column(sa.Text(), nullable=True) ssh_host_ed25519_key_cert_pub = sa.Column(sa.Text(), nullable=True) ssh_host_key = sa.Column(sa.EncryptedText(), nullable=True) ssh_host_key_pub = sa.Column(sa.Text(), nullable=True) ssh_host_rsa_key = sa.Column(sa.EncryptedText(), nullable=True) ssh_host_rsa_key_pub = sa.Column(sa.Text(), nullable=True) ssh_host_rsa_key_cert_pub = sa.Column(sa.Text(), nullable=True) ssh_weak_ciphers = sa.Column(sa.JSON(type=list)) ssh_options = sa.Column(sa.Text())
class KeychainCredentialModel(sa.Model): __tablename__ = 'system_keychaincredential' id = sa.Column(sa.Integer(), primary_key=True) name = sa.Column(sa.String(255)) type = sa.Column(sa.String(255)) attributes = sa.Column(sa.JSON(encrypted=True))
class CatalogModel(sa.Model): __tablename__ = 'services_catalog' label = sa.Column(sa.String(255), nullable=False, unique=True, primary_key=True) repository = sa.Column(sa.Text(), nullable=False) branch = sa.Column(sa.String(255), nullable=False) builtin = sa.Column(sa.Boolean(), nullable=False, default=False) preferred_trains = sa.Column(sa.JSON(type=list))
class ACLTempateModel(sa.Model): __tablename__ = 'filesystem_acltemplate' id = sa.Column(sa.Integer(), primary_key=True) acltemplate_name = sa.Column(sa.String(120), unique=True) acltemplate_acltype = sa.Column(sa.String(255)) acltemplate_acl = sa.Column(sa.JSON(type=list)) acltemplate_builtin = sa.Column(sa.Boolean())
class VMDeviceModel(sa.Model): __tablename__ = 'vm_device' id = sa.Column(sa.Integer(), primary_key=True) dtype = sa.Column(sa.String(50)) attributes = sa.Column(sa.JSON()) vm_id = sa.Column(sa.ForeignKey('vm_vm.id'), index=True) order = sa.Column(sa.Integer(), nullable=True)
class APIKeyModel(sa.Model): __tablename__ = "account_api_key" id = sa.Column(sa.Integer(), primary_key=True) name = sa.Column(sa.String(200)) key = sa.Column(sa.Text()) created_at = sa.Column(sa.DateTime()) allowlist = sa.Column(sa.JSON(type=list))
class NFSShareModel(sa.Model): __tablename__ = 'sharing_nfs_share' id = sa.Column(sa.Integer(), primary_key=True) nfs_paths = sa.Column(sa.JSON(type=list)) nfs_aliases = sa.Column(sa.JSON(type=list)) nfs_comment = sa.Column(sa.String(120)) nfs_network = sa.Column(sa.Text()) nfs_hosts = sa.Column(sa.Text()) nfs_alldirs = sa.Column(sa.Boolean(), default=False) nfs_ro = sa.Column(sa.Boolean(), default=False) nfs_quiet = sa.Column(sa.Boolean(), default=False) nfs_maproot_user = sa.Column(sa.String(120), nullable=True, default='') nfs_maproot_group = sa.Column(sa.String(120), nullable=True, default='') nfs_mapall_user = sa.Column(sa.String(120), nullable=True, default='') nfs_mapall_group = sa.Column(sa.String(120), nullable=True, default='') nfs_security = sa.Column(sa.MultiSelectField()) nfs_enabled = sa.Column(sa.Boolean(), default=True)
class AlertServiceModel(sa.Model): __tablename__ = 'system_alertservice' id = sa.Column(sa.Integer(), primary_key=True) name = sa.Column(sa.String(120)) type = sa.Column(sa.String(20)) attributes = sa.Column(sa.JSON()) enabled = sa.Column(sa.Boolean()) level = sa.Column(sa.String(20))
class TwoFactorAuthModel(sa.Model): __tablename__ = 'system_twofactorauthentication' id = sa.Column(sa.Integer(), primary_key=True) otp_digits = sa.Column(sa.Integer(), default=6) secret = sa.Column(sa.EncryptedText(), nullable=True, default=None) window = sa.Column(sa.Integer(), default=0) interval = sa.Column(sa.Integer(), default=30) services = sa.Column(sa.JSON(), default={}) enabled = sa.Column(sa.Boolean(), default=False)
class IdmapDomainModel(sa.Model): __tablename__ = 'directoryservice_idmap_domain' id = sa.Column(sa.Integer(), primary_key=True) idmap_domain_name = sa.Column(sa.String(120), unique=True) idmap_domain_dns_domain_name = sa.Column(sa.String(255), nullable=True, unique=True) idmap_domain_range_low = sa.Column(sa.Integer()) idmap_domain_range_high = sa.Column(sa.Integer()) idmap_domain_idmap_backend = sa.Column(sa.String(120), default='rid') idmap_domain_options = sa.Column(sa.JSON(type=dict)) idmap_domain_certificate_id = sa.Column(sa.ForeignKey('system_certificate.id'), index=True, nullable=True)
class SystemGeneralModel(sa.Model): __tablename__ = 'system_settings' id = sa.Column(sa.Integer(), primary_key=True) stg_guiaddress = sa.Column(sa.JSON(type=list), default=['0.0.0.0']) stg_guiv6address = sa.Column(sa.JSON(type=list), default=['::']) stg_guiallowlist = sa.Column(sa.JSON(type=list), default=[]) stg_guiport = sa.Column(sa.Integer(), default=80) stg_guihttpsport = sa.Column(sa.Integer(), default=443) stg_guihttpsredirect = sa.Column(sa.Boolean(), default=False) stg_guihttpsprotocols = sa.Column(sa.JSON(type=list), default=['TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3']) stg_guix_frame_options = sa.Column(sa.String(120), default='SAMEORIGIN') stg_guiconsolemsg = sa.Column(sa.Boolean(), default=True) stg_language = sa.Column(sa.String(120), default='en') stg_kbdmap = sa.Column(sa.String(120), default='us') stg_birthday = sa.Column(sa.DateTime(), nullable=True) stg_timezone = sa.Column(sa.String(120), default='America/Los_Angeles') stg_wizardshown = sa.Column(sa.Boolean(), default=False) stg_pwenc_check = sa.Column(sa.String(100)) stg_guicertificate_id = sa.Column(sa.ForeignKey('system_certificate.id'), index=True, nullable=True) stg_crash_reporting = sa.Column(sa.Boolean(), nullable=True) stg_usage_collection = sa.Column(sa.Boolean(), nullable=True)
class MailModel(sa.Model): __tablename__ = 'system_email' id = sa.Column(sa.Integer(), primary_key=True) em_fromemail = sa.Column(sa.String(120), default='') em_outgoingserver = sa.Column(sa.String(120)) em_port = sa.Column(sa.Integer(), default=25) em_security = sa.Column(sa.String(120), default="plain") em_smtp = sa.Column(sa.Boolean()) em_user = sa.Column(sa.String(120), nullable=True) em_pass = sa.Column(sa.EncryptedText(), nullable=True) em_fromname = sa.Column(sa.String(120), default='') em_oauth = sa.Column(sa.JSON(type=dict, encrypted=True), nullable=True)
class AlertModel(sa.Model): __tablename__ = 'system_alert' id = sa.Column(sa.Integer(), primary_key=True) node = sa.Column(sa.String(100)) source = sa.Column(sa.Text()) key = sa.Column(sa.Text()) datetime = sa.Column(sa.DateTime()) last_occurrence = sa.Column(sa.DateTime()) text = sa.Column(sa.Text()) args = sa.Column(sa.JSON(type=None)) dismissed = sa.Column(sa.Boolean()) uuid = sa.Column(sa.Text()) klass = sa.Column(sa.Text())
class KubernetesModel(sa.Model): __tablename__ = 'services_kubernetes' id = sa.Column(sa.Integer(), primary_key=True) pool = sa.Column(sa.String(255), default=None, nullable=True) cluster_cidr = sa.Column(sa.String(128), default='172.16.0.0/16') service_cidr = sa.Column(sa.String(128), default='172.17.0.0/16') cluster_dns_ip = sa.Column(sa.String(128), default='172.17.0.10') route_v4_interface = sa.Column(sa.String(128), nullable=True) route_v4_gateway = sa.Column(sa.String(128), nullable=True) route_v6_interface = sa.Column(sa.String(128), nullable=True) route_v6_gateway = sa.Column(sa.String(128), nullable=True) node_ip = sa.Column(sa.String(128), default='0.0.0.0') cni_config = sa.Column(sa.JSON(type=dict))
class AlertModel(sa.Model): __tablename__ = 'system_alert' __table_args__ = ( sa.Index('system_alert_node_f77e0d77_uniq', 'node', 'klass', 'key', unique=True), ) id = sa.Column(sa.Integer(), primary_key=True) node = sa.Column(sa.String(100)) source = sa.Column(sa.Text()) key = sa.Column(sa.Text()) datetime = sa.Column(sa.DateTime()) last_occurrence = sa.Column(sa.DateTime()) text = sa.Column(sa.Text()) args = sa.Column(sa.JSON()) dismissed = sa.Column(sa.Boolean()) uuid = sa.Column(sa.Text()) klass = sa.Column(sa.Text())
class PeriodicSnapshotTaskModel(sa.Model): __tablename__ = 'storage_task' id = sa.Column(sa.Integer(), primary_key=True) task_dataset = sa.Column(sa.String(150)) task_recursive = sa.Column(sa.Boolean(), default=False) task_lifetime_value = sa.Column(sa.Integer(), default=2) task_lifetime_unit = sa.Column(sa.String(120), default='WEEK') task_begin = sa.Column(sa.Time(), default=time(hour=9)) task_end = sa.Column(sa.Time(), default=time(hour=18)) task_enabled = sa.Column(sa.Boolean(), default=True) task_exclude = sa.Column(sa.JSON(type=list)) task_naming_schema = sa.Column(sa.String(150), default='auto-%Y-%m-%d_%H-%M') task_minute = sa.Column(sa.String(100), default="00") task_hour = sa.Column(sa.String(100), default="*") task_daymonth = sa.Column(sa.String(100), default="*") task_month = sa.Column(sa.String(100), default='*') task_dayweek = sa.Column(sa.String(100), default="*") task_allow_empty = sa.Column(sa.Boolean(), default=True)
class UserModel(sa.Model): __tablename__ = 'account_bsdusers' id = sa.Column(sa.Integer(), primary_key=True) bsdusr_uid = sa.Column(sa.Integer()) bsdusr_username = sa.Column(sa.String(16), default='User &') bsdusr_unixhash = sa.Column(sa.String(128), default='*') bsdusr_smbhash = sa.Column(sa.EncryptedText(), default='*') bsdusr_home = sa.Column(sa.String(255), default="/nonexistent") bsdusr_shell = sa.Column(sa.String(120), default='/bin/csh') bsdusr_full_name = sa.Column(sa.String(120)) bsdusr_builtin = sa.Column(sa.Boolean(), default=False) bsdusr_smb = sa.Column(sa.Boolean(), default=True) bsdusr_password_disabled = sa.Column(sa.Boolean(), default=False) bsdusr_locked = sa.Column(sa.Boolean(), default=False) bsdusr_sudo = sa.Column(sa.Boolean(), default=False) bsdusr_microsoft_account = sa.Column(sa.Boolean()) bsdusr_group_id = sa.Column(sa.ForeignKey('account_bsdgroups.id'), index=True) bsdusr_attributes = sa.Column(sa.JSON()) bsdusr_email = sa.Column(sa.String(254), nullable=True)
class CertificateModel(sa.Model): __tablename__ = 'system_certificate' id = sa.Column(sa.Integer(), primary_key=True) cert_type = sa.Column(sa.Integer()) cert_name = sa.Column(sa.String(120), unique=True) cert_certificate = sa.Column(sa.Text(), nullable=True) cert_privatekey = sa.Column(sa.EncryptedText(), nullable=True) cert_CSR = sa.Column(sa.Text(), nullable=True) cert_signedby_id = sa.Column( sa.ForeignKey('system_certificateauthority.id'), index=True, nullable=True) cert_acme_uri = sa.Column(sa.String(200), nullable=True) cert_domains_authenticators = sa.Column(sa.JSON(encrypted=True), nullable=True) cert_renew_days = sa.Column(sa.Integer(), nullable=True, default=10) cert_acme_id = sa.Column(sa.ForeignKey('system_acmeregistration.id'), index=True, nullable=True) cert_revoked_date = sa.Column(sa.DateTime(), nullable=True)
class SystemAdvancedModel(sa.Model): __tablename__ = 'system_advanced' id = sa.Column(sa.Integer(), primary_key=True) adv_consolemenu = sa.Column(sa.Boolean(), default=False) adv_serialconsole = sa.Column(sa.Boolean(), default=False) adv_serialport = sa.Column(sa.String(120), default='ttyS0') adv_serialspeed = sa.Column(sa.String(120), default='9600') adv_powerdaemon = sa.Column(sa.Boolean(), default=False) adv_swapondrive = sa.Column(sa.Integer(), default=2) adv_overprovision = sa.Column(sa.Integer(), nullable=True, default=None) adv_traceback = sa.Column(sa.Boolean(), default=True) adv_advancedmode = sa.Column(sa.Boolean(), default=False) adv_autotune = sa.Column(sa.Boolean(), default=False) adv_debugkernel = sa.Column(sa.Boolean(), default=False) adv_uploadcrash = sa.Column(sa.Boolean(), default=True) adv_anonstats = sa.Column(sa.Boolean(), default=True) adv_anonstats_token = sa.Column(sa.Text()) adv_motd = sa.Column(sa.Text(), default='Welcome') adv_boot_scrub = sa.Column(sa.Integer(), default=7) adv_fqdn_syslog = sa.Column(sa.Boolean(), default=False) adv_sed_user = sa.Column(sa.String(120), default='user') adv_sed_passwd = sa.Column(sa.EncryptedText(), default='') adv_sysloglevel = sa.Column(sa.String(120), default='f_info') adv_syslogserver = sa.Column(sa.String(120), default='') adv_syslog_transport = sa.Column(sa.String(12), default='UDP') adv_syslog_tls_certificate_id = sa.Column( sa.ForeignKey('system_certificate.id'), index=True, nullable=True) adv_syslog_tls_certificate_authority_id = sa.Column( sa.ForeignKey('system_certificateauthority.id'), index=True, nullable=True) adv_kmip_uid = sa.Column(sa.String(255), nullable=True, default=None) adv_kdump_enabled = sa.Column(sa.Boolean(), default=False) adv_isolated_gpu_pci_ids = sa.Column(sa.JSON(), default=[]) adv_kernel_extra_options = sa.Column(sa.Text(), default='', nullable=False)
class AlertClassesModel(sa.Model): __tablename__ = 'system_alertclasses' id = sa.Column(sa.Integer(), primary_key=True) classes = sa.Column(sa.JSON())