diff --git a/jcloud/auth.py b/jcloud/auth.py index 03c14e4..8bcabac 100644 --- a/jcloud/auth.py +++ b/jcloud/auth.py @@ -54,6 +54,7 @@ ALLOWED_WILDCARD_PATHS = [ "/api/method/wiki.", "/api/method/jingrow.integrations.oauth2_logins.", "/api/method/jcloud.www.marketplace.index.", + "/api/method/japi.", ] DENIED_PATHS = [ diff --git a/jcloud/hooks.py b/jcloud/hooks.py index f4535c1..74166e5 100644 --- a/jcloud/hooks.py +++ b/jcloud/hooks.py @@ -260,7 +260,6 @@ scheduler_events = { "jcloud.jcloud.pagetype.site_update.site_update.run_scheduled_updates", "jcloud.jcloud.pagetype.site_migration.site_migration.run_scheduled_migrations", "jcloud.jcloud.pagetype.version_upgrade.version_upgrade.run_scheduled_upgrades", - "jcloud.jcloud.pagetype.subscription.subscription.create_usage_records", "jcloud.jcloud.pagetype.virtual_machine.virtual_machine.sync_virtual_machines", "jcloud.jcloud.pagetype.mariadb_stalk.mariadb_stalk.fetch_stalks", ], diff --git a/jcloud/jcloud/workspace/jcloud/jcloud.json b/jcloud/jcloud/workspace/jcloud/jcloud.json index 9befc64..e53251d 100644 --- a/jcloud/jcloud/workspace/jcloud/jcloud.json +++ b/jcloud/jcloud/workspace/jcloud/jcloud.json @@ -1,24 +1,24 @@ { "charts": [], - "content": "[{\"id\":\"zYUVFJZX-t\",\"type\":\"header\",\"data\":{\"text\":\"Jingrow\",\"col\":12}},{\"id\":\"VFzeFzlnB5\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"iNJ8WoS9kD\",\"type\":\"header\",\"data\":{\"text\":\"Sites\",\"col\":12}},{\"id\":\"EYeJrbXv1P\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Active Sites\",\"col\":3}},{\"id\":\"7jAM0HBrde\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Broken Sites\",\"col\":3}},{\"id\":\"ttO5vXfzL_\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Pending Sites\",\"col\":3}},{\"id\":\"nvLoQ_N15n\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Suspended Sites\",\"col\":3}},{\"id\":\"AVO8JCkksy\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"aLqo1uNPYu\",\"type\":\"header\",\"data\":{\"text\":\"Benches\",\"col\":12}},{\"id\":\"BcJPVEkRcy\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Active Benches\",\"col\":3}},{\"id\":\"PhHBf-f1ej\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Broken Benches\",\"col\":3}},{\"id\":\"JJB6cOEiXy\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"7a18ugroq8\",\"type\":\"header\",\"data\":{\"text\":\"Servers\",\"col\":12}},{\"id\":\"M3urSE6cor\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Application Server\",\"col\":3}},{\"id\":\"5qOJXl1CkE\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Database Server\",\"col\":3}},{\"id\":\"PWrCW7DruI\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Proxy Server\",\"col\":3}},{\"id\":\"_GVOmg7C_U\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Hybrid Servers\",\"col\":3}},{\"id\":\"XHWA0NCImO\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"X1dteEUHoR\",\"type\":\"header\",\"data\":{\"text\":\"Settings\",\"col\":12}},{\"id\":\"eeEbYjVj_n\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Jcloud Settings\",\"col\":3}},{\"id\":\"EiWS2tWYwu\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Root Domain\",\"col\":3}},{\"id\":\"EoLO5YYzdR\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Tls Certificate\",\"col\":3}},{\"id\":\"-Jx1Irf-28\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Team\",\"col\":3}},{\"id\":\"n-T0ehr2ca\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"xZEclbenJQ\",\"type\":\"header\",\"data\":{\"text\":\"Masters\",\"col\":12}},{\"id\":\"P6nCUrJreH\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App\",\"col\":3}},{\"id\":\"1kAyHtrIrJ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App Source\",\"col\":3}},{\"id\":\"-N-Xb5MVPV\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App Release\",\"col\":3}},{\"id\":\"ND9oElFB7R\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"0DYlbnEtOT\",\"type\":\"header\",\"data\":{\"text\":\"Subscription\",\"col\":12}},{\"id\":\"eddRzzqwSZ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Server Plan\",\"col\":3}},{\"id\":\"GYk3Frsy1L\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Site Plan\",\"col\":3}},{\"id\":\"o_aDSbQlPf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Subscription\",\"col\":3}},{\"id\":\"VZSHmE1jzA\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Invoice\",\"col\":3}},{\"id\":\"B8T-3IZ8Qg\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"WDyzNHuOas\",\"type\":\"header\",\"data\":{\"text\":\"Operations\",\"col\":12}},{\"id\":\"Ziby8rOfsU\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Agent Job\",\"col\":3}},{\"id\":\"Vm4Tn0dxiD\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Ansible Play\",\"col\":3}},{\"id\":\"n6VE51hPkc\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Jcloud Job\",\"col\":3}}]", + "content": "[{\"id\":\"zYUVFJZX-t\",\"type\":\"header\",\"data\":{\"text\":\"Jingrow\",\"col\":12}},{\"id\":\"VFzeFzlnB5\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"iNJ8WoS9kD\",\"type\":\"header\",\"data\":{\"text\":\"网站\",\"col\":12}},{\"id\":\"EYeJrbXv1P\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Active Sites\",\"col\":3}},{\"id\":\"7jAM0HBrde\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Broken Sites\",\"col\":3}},{\"id\":\"ttO5vXfzL_\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Pending Sites\",\"col\":3}},{\"id\":\"nvLoQ_N15n\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Suspended Sites\",\"col\":3}},{\"id\":\"AVO8JCkksy\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"aLqo1uNPYu\",\"type\":\"header\",\"data\":{\"text\":\"Benches\",\"col\":12}},{\"id\":\"BcJPVEkRcy\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Active Benches\",\"col\":3}},{\"id\":\"PhHBf-f1ej\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Broken Benches\",\"col\":3}},{\"id\":\"JJB6cOEiXy\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"7a18ugroq8\",\"type\":\"header\",\"data\":{\"text\":\"Servers\",\"col\":12}},{\"id\":\"M3urSE6cor\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Application Server\",\"col\":3}},{\"id\":\"5qOJXl1CkE\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Database Server\",\"col\":3}},{\"id\":\"PWrCW7DruI\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Proxy Server\",\"col\":3}},{\"id\":\"_GVOmg7C_U\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Hybrid Servers\",\"col\":3}},{\"id\":\"XHWA0NCImO\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"X1dteEUHoR\",\"type\":\"header\",\"data\":{\"text\":\"设置\",\"col\":12}},{\"id\":\"eeEbYjVj_n\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Jcloud Settings\",\"col\":3}},{\"id\":\"EiWS2tWYwu\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Root Domain\",\"col\":3}},{\"id\":\"EoLO5YYzdR\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Tls Certificate\",\"col\":3}},{\"id\":\"-Jx1Irf-28\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Team\",\"col\":3}},{\"id\":\"n-T0ehr2ca\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"xZEclbenJQ\",\"type\":\"header\",\"data\":{\"text\":\"Masters\",\"col\":12}},{\"id\":\"P6nCUrJreH\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App\",\"col\":3}},{\"id\":\"1kAyHtrIrJ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App Source\",\"col\":3}},{\"id\":\"-N-Xb5MVPV\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App Release\",\"col\":3}},{\"id\":\"ND9oElFB7R\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"0DYlbnEtOT\",\"type\":\"header\",\"data\":{\"text\":\"Subscription\",\"col\":12}},{\"id\":\"eddRzzqwSZ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Server Plan\",\"col\":3}},{\"id\":\"GYk3Frsy1L\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Site Plan\",\"col\":3}},{\"id\":\"o_aDSbQlPf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Subscription\",\"col\":3}},{\"id\":\"VZSHmE1jzA\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Invoice\",\"col\":3}},{\"id\":\"B8T-3IZ8Qg\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"WDyzNHuOas\",\"type\":\"header\",\"data\":{\"text\":\"Operations\",\"col\":12}},{\"id\":\"Ziby8rOfsU\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Agent Job\",\"col\":3}},{\"id\":\"Vm4Tn0dxiD\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Ansible Play\",\"col\":3}},{\"id\":\"n6VE51hPkc\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Jcloud Job\",\"col\":3}}]", "creation": "2024-07-30 18:43:18.421196", "custom_blocks": [], - "pagestatus": 0, - "pagetype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "tool", "idx": 0, "indicator_color": "", - "is_hidden": 1, + "is_hidden": 0, "label": "Jcloud", "links": [], - "modified": "2024-08-02 16:33:40.351403", + "modified": "2025-05-01 23:24:33.287591", "modified_by": "Administrator", "module": "Jcloud", "name": "Jcloud", "number_cards": [], "owner": "Administrator", + "pagestatus": 0, + "pagetype": "Workspace", "parent_page": "", "public": 1, "quick_lists": [], @@ -27,197 +27,197 @@ "shortcuts": [ { "color": "Green", - "pg_view": "List", "label": "Root Domain", "link_to": "Root Domain", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Grey", - "pg_view": "List", "label": "Agent Job", "link_to": "Agent Job", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Server Plan", "link_to": "Server Plan", + "pg_view": "List", "stats_filter": "[[\"Server Plan\",\"enabled\",\"=\",1,false]]", "type": "PageType" }, { "color": "Grey", - "pg_view": "List", "label": "Ansible Play", "link_to": "Ansible Play", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Team", "link_to": "Team", + "pg_view": "List", "stats_filter": "[[\"Team\",\"enabled\",\"=\",1,false]]", "type": "PageType" }, { "color": "Grey", - "pg_view": "List", "label": "Jcloud Job", "link_to": "Jcloud Job", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "format": "", "label": "Active Sites", "link_to": "Site", + "pg_view": "List", "stats_filter": "[[\"Site\",\"status\",\"=\",\"Active\",false]]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Site Plan", "link_to": "Site Plan", + "pg_view": "List", "stats_filter": "[[\"Site Plan\",\"enabled\",\"=\",1,false]]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Active Benches", "link_to": "Bench", + "pg_view": "List", "stats_filter": "[[\"Bench\",\"status\",\"=\",\"Active\",false]]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Subscription", "link_to": "Subscription", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Tls Certificate", "link_to": "TLS Certificate", + "pg_view": "List", "stats_filter": "[[\"TLS Certificate\",\"status\",\"=\",\"Active\",false]]", "type": "PageType" }, { "color": "Grey", - "pg_view": "List", "label": "Invoice", "link_to": "Invoice", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Red", - "pg_view": "List", "format": "", "label": "Broken Sites", "link_to": "Site", + "pg_view": "List", "stats_filter": "[[\"Site\",\"status\",\"=\",\"Broken\",false]]", "type": "PageType" }, { "color": "Red", - "pg_view": "List", "label": "Broken Benches", "link_to": "Bench", + "pg_view": "List", "stats_filter": "[[\"Bench\",\"status\",\"=\",\"Broken\",false]]", "type": "PageType" }, { "color": "Grey", - "pg_view": "List", "label": "App", "link_to": "App", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Yellow", - "pg_view": "List", "format": "", "label": "Pending Sites", "link_to": "Site", + "pg_view": "List", "stats_filter": "[[\"Site\",\"status\",\"=\",\"Pending\",false]]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Application Server", "link_to": "Server", + "pg_view": "List", "stats_filter": "[[\"Server\",\"status\",\"=\",\"Active\",false]]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "App Source", "link_to": "App Source", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Grey", - "pg_view": "List", "format": "", "label": "Suspended Sites", "link_to": "Site", + "pg_view": "List", "stats_filter": "[[\"Site\",\"status\",\"=\",\"Suspended\",false]]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Database Server", "link_to": "Database Server", + "pg_view": "List", "stats_filter": "[[\"Database Server\",\"status\",\"=\",\"Active\",false]]", "type": "PageType" }, { "color": "Grey", - "pg_view": "List", "label": "App Release", "link_to": "App Release", + "pg_view": "List", "stats_filter": "[]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Proxy Server", "link_to": "Proxy Server", + "pg_view": "List", "stats_filter": "[[\"Proxy Server\",\"status\",\"=\",\"Active\",false]]", "type": "PageType" }, { "color": "Green", - "pg_view": "List", "label": "Hybrid Servers", "link_to": "Self Hosted Server", + "pg_view": "List", "stats_filter": "[[\"Self Hosted Server\",\"status\",\"=\",\"Active\",false]]", "type": "PageType" }, { "color": "Grey", - "pg_view": "List", "label": "Jcloud Settings", "link_to": "Jcloud Settings", + "pg_view": "List", "type": "PageType" } ],