Configuration#
Root directory file configuration#
In the root directory of the plugin,Need Config.Toml file,The basic content of this file is as follows:
package='com.longgui.case'
name="Sample plugin"
version='1.0'
labels='case'
homepage='https://www.company.com'
logo=''
author='case@company.com'
This file is with extension.__init__ The same role of the function.
When uploading the plug -in to the plug -in store,The plug -in store will also obtain the basic information of the plug -in through this configuration file。
Database configuration#
The kernel is for the convenience of the plug -in,Customized the configuration form of three plug -in。
And to generate the corresponding SCHEMA for these configurations to enable each plug -in API to dynamically adapt to the addition and deletion of the plugin。
Plug -in configuration (Profile)#
-
Define arkid.extension.models.Extension middle
One -to -one configuration with the plug -in itself,json format
use arkid.core.extension.Extension.register_profile_schema Register its schema
profileAdding, deletion, change inspection self.model Complete completion
Considuous configuration (Settings)#
-
Define arkid.extension.models.TenantExtension middle
There is only one settings configuration for each plugin under each tenant,json format
use arkid.core.extension.Extension.register_settings_schema Register its schema
settingsAdding, deletion, change inspection:
Configuration (config) during runtime#
-
Define arkid.extension.models.TenantExtensionConfig middle
Each plugin under each tenant has multiple configs,json format
use arkid.core.extension.Extension.register_config_schema Register its schema
use arkid.core.extension.Extension.register_composite_config_schema Register a type of SCHEMA
configAdding, deletion, change inspection:
Notice
The schema of the plug -in should be called arkid.core.extension.create_extension_schema Methods to complete
...
package = 'com.longgui.case'
Profile = create_extension_schema(
'Profile', package,
fields = [
('name', str, Field())
]
)
Settings = create_extension_schema(
'Settings', package,
fields = [
('name', str, Field())
]
)
Config = create_extension_schema(
'Config', package,
fields = [
('name', str, Field())
]
)
class CaseExtension(extension.Extension):
def load(self):
super().load()
self.register_profile_schema(Profile)
self.register_settings_schema(Settings)
self.register_config_schema(Config)
self.register_composite_config_schema(Config, 'type_name')
...
arkid.extension.models
#
ArkStoreCategory (BaseModel)
django-model
#
ArkStoreCategory(id, is_del, is_active, updated, created, arkstore_id, arkstore_name, arkstore_parent_id, arkstore_type)
arkstore_id: IntegerField
django-field
nullable
#
ArkStoreID
arkstore_name: CharField
blank
django-field
nullable
#
ArkStore名称
arkstore_parent_id: IntegerField
django-field
nullable
#
ArkStoreParentID
arkstore_type: CharField
django-field
#
类别
created: DateTimeField
blank
django-field
nullable
#
创建时间
id: UUIDField
django-field
#
ID
is_active: BooleanField
django-field
#
是否可用
is_del: BooleanField
django-field
#
是否删除
updated: DateTimeField
blank
django-field
nullable
#
更新时间
Extension (BaseModel)
django-model
#
Extension(id, is_del, updated, created, type, labels, package, ext_dir, name, version, author, logo, homepage, is_active, expired, profile, is_allow_use_platform_config, category_id)
author: CharField
blank
django-field
nullable
#
Author
category_id: IntegerField
django-field
nullable
#
ArkStore分类ID
created: DateTimeField
blank
django-field
nullable
#
创建时间
expired: BooleanField
django-field
#
expired
ext_dir: CharField
django-field
#
完整路径名
homepage: CharField
blank
django-field
nullable
#
Homepage
id: UUIDField
django-field
#
ID
is_active: BooleanField
django-field
#
是否启动
is_allow_use_platform_config: BooleanField
django-field
#
是否允许租户使用平台配置
is_del: BooleanField
django-field
#
是否删除
labels: JSONField
blank
django-field
#
Labels
logo: CharField
blank
django-field
nullable
#
Logo
name: CharField
django-field
#
名称
package: CharField
django-field
#
标识
profile: JSONField
blank
django-field
#
Setup Profile
type: CharField
django-field
#
类型
updated: DateTimeField
blank
django-field
nullable
#
更新时间
version: CharField
django-field
#
版本
TenantExtension (BaseModel)
django-model
#
TenantExtension(id, is_del, updated, created, tenant, extension, settings, is_active, is_rented, use_platform_config)
created: DateTimeField
blank
django-field
nullable
#
创建时间
extension: ForeignKey
django-field
#
插件
id: UUIDField
django-field
#
ID
is_active: BooleanField
django-field
#
是否使用
is_del: BooleanField
django-field
#
是否删除
is_rented: BooleanField
django-field
#
是否已租赁
settings: JSONField
blank
django-field
#
Tenant Settings
tenant: ForeignKey
django-field
#
租户
updated: DateTimeField
blank
django-field
nullable
#
更新时间
use_platform_config: BooleanField
django-field
#
是否使用平台配置
TenantExtensionConfig (BaseModel)
django-model
#
TenantExtensionConfig(id, is_del, is_active, updated, created, tenant, extension, config, name, type)
config: JSONField
blank
django-field
#
Runtime Config
created: DateTimeField
blank
django-field
nullable
#
创建时间
extension: ForeignKey
django-field
#
插件
id: UUIDField
django-field
#
ID
is_active: BooleanField
django-field
#
是否可用
is_del: BooleanField
django-field
#
是否删除
name: CharField
django-field
#
名称
tenant: ForeignKey
django-field
#
租户
type: CharField
django-field
#
类型
updated: DateTimeField
blank
django-field
nullable
#
更新时间