diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5f098abbbd8accc5e2a89d3af9a43228b7a6c875
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3d655df3eb071f0cf9616d10ddd39ce43f89dd5b
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f16410c299b534e0810531cb667d8f685109c2c8
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/testlib.iml b/.idea/testlib.iml
new file mode 100644
index 0000000000000000000000000000000000000000..74d515a027de98657e9d3d5f0f1831882fd81374
--- /dev/null
+++ b/.idea/testlib.iml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app.properties b/app.properties
new file mode 100644
index 0000000000000000000000000000000000000000..aebc31bf31dbd75d788b78a55ae961a683a7c6e4
--- /dev/null
+++ b/app.properties
@@ -0,0 +1,39 @@
+# sanic
+host = 0.0.0.0
+port = 8005
+debug = True
+access_log = True
+workers = 1
+sanic_key = test-library
+auto_reload = False
+jwt_secret_key = test-lib-jwt-secret-key
+main_domain = http://testlib:8005/
+
+# log
+log_mode = False
+log_bytes = 20*1024*1024
+log_backup = 5
+formatter = %(asctime)s [%(process)d] [%(levelname)s] %(message)s
+formatter_access = %(asctime)s [%(process)d] [%(levelname)s] [%(host)s]: %(request)s %(message)s %(status)d %(byte)d
+
+# mysql
+db_url = mysql+aiomysql://xxxx/testlib
+drop_all = False
+create_all = False
+pool_size = 10
+over_size = 10
+recycle = 3600
+
+# redis
+redis_url = redis://xxxxx/41
+
+# tone prod
+tone_host = http://tone-service.tone:7001/
+tone_token = xxxx
+tone_user_name = xxxxx
+
+# oss
+alg_oss_access_key = secret_key
+alg_oss_access_secret = access_key"
+alg_oss_bucket = bucket
+alg_oss_endpoint = endpoint
\ No newline at end of file
diff --git a/app/__pycache__/__init__.cpython-310.pyc b/app/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..612b6909cc85f6ecaa0d1fb5332a7557b3e54679
Binary files /dev/null and b/app/__pycache__/__init__.cpython-310.pyc differ
diff --git a/app/__pycache__/conf.cpython-310.pyc b/app/__pycache__/conf.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6fa2614ae757241877bc9bb0eb2a5c5a3ea9b6a3
Binary files /dev/null and b/app/__pycache__/conf.cpython-310.pyc differ
diff --git a/app/__pycache__/db.cpython-310.pyc b/app/__pycache__/db.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4acc52dfbbb45f87f46168976351e830be7877a5
Binary files /dev/null and b/app/__pycache__/db.cpython-310.pyc differ
diff --git a/app/__pycache__/log.cpython-310.pyc b/app/__pycache__/log.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..56c5f3917a1c1d6d5ddd884ae2f932dfc679cd90
Binary files /dev/null and b/app/__pycache__/log.cpython-310.pyc differ
diff --git a/app/__pycache__/oss.cpython-310.pyc b/app/__pycache__/oss.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..587127639a2d995133aeff57aba7ed5d3c4bbc7d
Binary files /dev/null and b/app/__pycache__/oss.cpython-310.pyc differ
diff --git a/app/__pycache__/redis.cpython-310.pyc b/app/__pycache__/redis.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0075fa179762390db3955159a384a97eb9f5b10d
Binary files /dev/null and b/app/__pycache__/redis.cpython-310.pyc differ
diff --git a/app/conf.py b/app/conf.py
index b21f593b6a70c0b4313eaf44a7512bc0fca88364..b00cf319f6d298a263489f5d2de21e0db167fc81 100644
--- a/app/conf.py
+++ b/app/conf.py
@@ -21,6 +21,7 @@ class SanicConf(object):
from_nacos = True
data = self.get_conf(env, file_name, from_nacos, group=group if group else app.name)
app.config.update(data)
+ app.config.update(os.environ)
self.config = app.config
def get_conf(self, env, file_name, from_nacos=False, group=None):
diff --git a/common/__pycache__/__init__.cpython-310.pyc b/common/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..77cfdb6dc1b8922824c018d140e4228a77574230
Binary files /dev/null and b/common/__pycache__/__init__.cpython-310.pyc differ
diff --git a/common/__pycache__/enums.cpython-310.pyc b/common/__pycache__/enums.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a30ac2705e99c676895630e18d289d96cd3b742a
Binary files /dev/null and b/common/__pycache__/enums.cpython-310.pyc differ
diff --git a/common/__pycache__/http.cpython-310.pyc b/common/__pycache__/http.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ea354cfb28fc293b6122b1e4826e3b27157ebc45
Binary files /dev/null and b/common/__pycache__/http.cpython-310.pyc differ
diff --git a/common/__pycache__/token.cpython-310.pyc b/common/__pycache__/token.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8d38771bd13d6a4cc2d9c8c5e4a8454dbf2c623c
Binary files /dev/null and b/common/__pycache__/token.cpython-310.pyc differ
diff --git a/common/__pycache__/tools.cpython-310.pyc b/common/__pycache__/tools.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..beafefdf399c36cd40e5522ae2db89763ea81d38
Binary files /dev/null and b/common/__pycache__/tools.cpython-310.pyc differ
diff --git a/common/tone/__pycache__/__init__.cpython-310.pyc b/common/tone/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..c3c6e7f4b92f351f002174d4a203499229640760
Binary files /dev/null and b/common/tone/__pycache__/__init__.cpython-310.pyc differ
diff --git a/common/tone/__pycache__/api.cpython-310.pyc b/common/tone/__pycache__/api.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ca5c0ca09a1cc531863fe0d9da366b32254e0abb
Binary files /dev/null and b/common/tone/__pycache__/api.cpython-310.pyc differ
diff --git a/common/tone/__pycache__/tone_request.cpython-310.pyc b/common/tone/__pycache__/tone_request.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..09f20660948a743c0728c225306cf9c34d431660
Binary files /dev/null and b/common/tone/__pycache__/tone_request.cpython-310.pyc differ
diff --git a/common/utils/__pycache__/excel.cpython-310.pyc b/common/utils/__pycache__/excel.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..17d2ca57d167f844af6ffcaf0ee5150a710096f0
Binary files /dev/null and b/common/utils/__pycache__/excel.cpython-310.pyc differ
diff --git a/models/__pycache__/__init__.cpython-310.pyc b/models/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a40f3511f07113cfdc841e7bca16a8962bd04668
Binary files /dev/null and b/models/__pycache__/__init__.cpython-310.pyc differ
diff --git a/models/__pycache__/case_model.cpython-310.pyc b/models/__pycache__/case_model.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..00015a30113c0c685f2a8e46e1db6b958d948f0f
Binary files /dev/null and b/models/__pycache__/case_model.cpython-310.pyc differ
diff --git a/models/__pycache__/device_model.cpython-310.pyc b/models/__pycache__/device_model.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..475c25aa10f4509a0432f36390faef68f58ca4bd
Binary files /dev/null and b/models/__pycache__/device_model.cpython-310.pyc differ
diff --git a/models/__pycache__/job_model.cpython-310.pyc b/models/__pycache__/job_model.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..76134377586c37ab4097dc0ed804b6dbb8d9b550
Binary files /dev/null and b/models/__pycache__/job_model.cpython-310.pyc differ
diff --git a/models/__pycache__/outline_model.cpython-310.pyc b/models/__pycache__/outline_model.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..691eb44f6e1ba00e60167e5bf2bb141948f13d7c
Binary files /dev/null and b/models/__pycache__/outline_model.cpython-310.pyc differ
diff --git a/models/__pycache__/plan_model.cpython-310.pyc b/models/__pycache__/plan_model.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..428eced7fc80782c1229b1b88b216f5d99dc827e
Binary files /dev/null and b/models/__pycache__/plan_model.cpython-310.pyc differ
diff --git a/models/__pycache__/requirement_model.cpython-310.pyc b/models/__pycache__/requirement_model.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4ae93efa89692ae0acdbfa75a5cb064331b58ef8
Binary files /dev/null and b/models/__pycache__/requirement_model.cpython-310.pyc differ
diff --git a/models/__pycache__/task_model.cpython-310.pyc b/models/__pycache__/task_model.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..834f5dd171dd5c1e7543357335aeffb471b4a708
Binary files /dev/null and b/models/__pycache__/task_model.cpython-310.pyc differ
diff --git a/models/__pycache__/tone_model.cpython-310.pyc b/models/__pycache__/tone_model.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..bfd3de4e0c9ac12441fcb38451475a4c8c269f89
Binary files /dev/null and b/models/__pycache__/tone_model.cpython-310.pyc differ
diff --git a/models/__pycache__/user_models.cpython-310.pyc b/models/__pycache__/user_models.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..25cad0518deaad08c3972c7a5c8c6dec942af9f2
Binary files /dev/null and b/models/__pycache__/user_models.cpython-310.pyc differ
diff --git a/services/__pycache__/__init__.cpython-310.pyc b/services/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..5783180da680a7caea185c37035bd7a6aa44a048
Binary files /dev/null and b/services/__pycache__/__init__.cpython-310.pyc differ
diff --git a/services/__pycache__/auth_service.cpython-310.pyc b/services/__pycache__/auth_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a5c93775afe7ed851f206590a1319884293b6a61
Binary files /dev/null and b/services/__pycache__/auth_service.cpython-310.pyc differ
diff --git a/services/__pycache__/case_service.cpython-310.pyc b/services/__pycache__/case_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..eeed8cd34dda45ecf48dbcea7b534f63c8ec8cc2
Binary files /dev/null and b/services/__pycache__/case_service.cpython-310.pyc differ
diff --git a/services/__pycache__/common_service.cpython-310.pyc b/services/__pycache__/common_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..78e2b7dd2edd027089976ce8f762473899d93266
Binary files /dev/null and b/services/__pycache__/common_service.cpython-310.pyc differ
diff --git a/services/__pycache__/const.cpython-310.pyc b/services/__pycache__/const.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..c107e93ee4b0d06356b2a746398cfaa7b15e8bab
Binary files /dev/null and b/services/__pycache__/const.cpython-310.pyc differ
diff --git a/services/__pycache__/device_service.cpython-310.pyc b/services/__pycache__/device_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..bff403faa1191ab030f0d9d7b50e0025cbaa5b3c
Binary files /dev/null and b/services/__pycache__/device_service.cpython-310.pyc differ
diff --git a/services/__pycache__/outline_service.cpython-310.pyc b/services/__pycache__/outline_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6b0bc4081bb923a925983691d88b02dfc6044c34
Binary files /dev/null and b/services/__pycache__/outline_service.cpython-310.pyc differ
diff --git a/services/__pycache__/plan_service.cpython-310.pyc b/services/__pycache__/plan_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..eeaf33c709c5a0c1587d31cfae7fa8918d83cb83
Binary files /dev/null and b/services/__pycache__/plan_service.cpython-310.pyc differ
diff --git a/services/__pycache__/requirement_service.cpython-310.pyc b/services/__pycache__/requirement_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..650fe34508d5713e482ffe8a383863fa9fc23e12
Binary files /dev/null and b/services/__pycache__/requirement_service.cpython-310.pyc differ
diff --git a/services/__pycache__/task_service.cpython-310.pyc b/services/__pycache__/task_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..630ad82d118b8c16ec0c1e39a5a344d85264e27e
Binary files /dev/null and b/services/__pycache__/task_service.cpython-310.pyc differ
diff --git a/services/__pycache__/tone_job_service.cpython-310.pyc b/services/__pycache__/tone_job_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..3255c7ed777d7b6983a04dbee25691b5244a0095
Binary files /dev/null and b/services/__pycache__/tone_job_service.cpython-310.pyc differ
diff --git a/services/__pycache__/tone_service.cpython-310.pyc b/services/__pycache__/tone_service.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..66d177ae6ba92d0ec2e7c2342c5e9725df093a4a
Binary files /dev/null and b/services/__pycache__/tone_service.cpython-310.pyc differ
diff --git a/views/__pycache__/__init__.cpython-310.pyc b/views/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b21ca421c990acd0e1d900c17863761ffaba58ce
Binary files /dev/null and b/views/__pycache__/__init__.cpython-310.pyc differ
diff --git a/views/__pycache__/auth_view.cpython-310.pyc b/views/__pycache__/auth_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6c5370d30fc6278a628078955f50a034bf1a5a5f
Binary files /dev/null and b/views/__pycache__/auth_view.cpython-310.pyc differ
diff --git a/views/__pycache__/case_view.cpython-310.pyc b/views/__pycache__/case_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a504b1fdeaf69d007e11958f6cee3052b7eb2a31
Binary files /dev/null and b/views/__pycache__/case_view.cpython-310.pyc differ
diff --git a/views/__pycache__/common_view.cpython-310.pyc b/views/__pycache__/common_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..5453634dc1a754a6f565c22a51c6ead2b96a4d46
Binary files /dev/null and b/views/__pycache__/common_view.cpython-310.pyc differ
diff --git a/views/__pycache__/device_view.cpython-310.pyc b/views/__pycache__/device_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..7bf1575fda1bcb32ae05d2da27ff98cf72308510
Binary files /dev/null and b/views/__pycache__/device_view.cpython-310.pyc differ
diff --git a/views/__pycache__/outline_view.cpython-310.pyc b/views/__pycache__/outline_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6a3a0c23bb04f35fd2457d63d8e084b96b3b7547
Binary files /dev/null and b/views/__pycache__/outline_view.cpython-310.pyc differ
diff --git a/views/__pycache__/plan_view.cpython-310.pyc b/views/__pycache__/plan_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..7a1cc6204cf8bdc3b64686b55488efcb056a935e
Binary files /dev/null and b/views/__pycache__/plan_view.cpython-310.pyc differ
diff --git a/views/__pycache__/requirement_view.cpython-310.pyc b/views/__pycache__/requirement_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..bcc90c3e12ff7241fd75dd389449061528f91e83
Binary files /dev/null and b/views/__pycache__/requirement_view.cpython-310.pyc differ
diff --git a/views/__pycache__/task_view.cpython-310.pyc b/views/__pycache__/task_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9109a2620a9ed10d4bae2c630b8297a887ba2347
Binary files /dev/null and b/views/__pycache__/task_view.cpython-310.pyc differ
diff --git a/views/__pycache__/tone_view.cpython-310.pyc b/views/__pycache__/tone_view.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4135d7f103d1445e0110168ac1287f606258edc0
Binary files /dev/null and b/views/__pycache__/tone_view.cpython-310.pyc differ
diff --git a/views/__pycache__/utils.cpython-310.pyc b/views/__pycache__/utils.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b1a13216122c8f2f7296c0d6f4cbee2f25792e3b
Binary files /dev/null and b/views/__pycache__/utils.cpython-310.pyc differ