ForgeCMS
cs

CMS

API administrace CMS Total.js: správa webu z kódu, záloha a obnova

CMS · cms@8071e48 cmsapiadminbackuprestorepermissions

Vše, co dělá rozhraní administrace, jde přes jediný endpoint: POST /admin/ s tělem { "schema": "<name>", "data": { ... } } (API cesty Total.js, viz API cesty). Adresa pochází z řádku $api : /admin/ v souboru config. Autentizujte se cookie relace (POST /admin/ se schema: "login" a login a password), hlavičkou x-token nebo přes OpenPlatform (instalace a první spuštění).

Akce

PluginVolání (schema)Oprávnění
Accountlogin, logout, admin_read, admin_save (jméno, login, heslo), accountrelace
Pagespages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (čte HTML), pages_save_html (id, html, až 5 MB), pages_copy (from, to)pages
Layoutslayouts_list, layouts_read, layouts_save, layouts_clone, layouts_remove, layouts_html, layouts_save_html, layouts_importlayouts
Widgetswidgets_list, widgets_read, widgets_save, widgets_remove, widgets_detailwidgets
Navigationnav_list, nav_read, nav_save, nav_remove, nav_editornavigation
Redirectsredirects_list, redirects_read, redirects_save (url, target, permanent), redirects_removeredirects
Variablesvariables_read, variables_save (vars)variables
Postsposts, posts_read, posts_create, posts_update, posts_remove, posts_clear, posts_categoriesposts
Filesfiles_list, files_rename, files_clear, files_remove, a nahrávání nížefiles
Settingssettings_read, settings_save, settings_test (vyzkouší nastavení SMTP), chatgptsettings
Dashboarddashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_statsžádné

Oprávnění admin (a každý uživatel s příznakem sa, včetně Bota tokenu) má přístup ke všem. Volání bez oprávnění dostane chybu a login je jediné volání, které nepotřebuje relaci.

Vytvořte stránku a její obsah:

{ "schema": "pages_save", "data": { "name": "About", "layoutid": "<layout id>", "url": "/about/", "title": "About us" } }
{ "schema": "pages_save_html", "data": { "id": "<page id>", "html": "<h1>About us</h1>" } }

pages_save odpoví { "success": true }; id přečtěte přes pages_list. U layoutu layouts_save odpoví id layoutu v value. Když při aktualizaci pole chybí, pole se vymaže (title, který neodešlete, se uloží prázdný), proto posílejte celý záznam.

Nahrávání souborů

POST /admin/upload/ přijímá multipart nahrávání (do 10 MB) a POST /admin/upload/base64/ tělo JSON s data URI (png, jpeg nebo gif). Obě odpovídají seznamem { id, name, type, ext, size, url }, kde url je /download/<id>.<ext>.

Záloha, obnova a vymazání

Tři cesty z controllers/api.js pracují s celým webem a vyžadují oprávnění admin:

CestaCo dělá
GET /admin/backup/stáhne celé úložiště souborů (metadata, HTML stránek a layoutů, soubory a příspěvky) jako jeden textový soubor pojmenovaný podle webu a data
POST /admin/restore/nahraje takový soubor (do 100 MB) a načte jej.
GET /admin/clear/smaže obsah webu. Zahodí úložiště souborů a načte je znovu, takže stránky, layouty, widgety a zbytek se odstran

Před vyzkoušením kterékoli z nich udělejte zálohu, nikdy neotevírejte /admin/clear/ v prohlížeči ze zvědavosti a token držte v tajnosti: s ním jediné GET vyprázdní web.