ForgeCMS
sv

CMS

Admin-API:et i Total.js CMS: hantera en webbplats från kod, säkerhetskopia och återställning

CMS · cms@8071e48 cmsapiadminbackuprestorepermissions

Allt administrationsgränssnittet gör går genom en enda endpoint: POST /admin/ med innehållet { "schema": "<name>", "data": { ... } } (Total.js API-rutter, se API-rutter). Adressen kommer från raden $api : /admin/ i filen config. Autentisera med sessionscookien (POST /admin/ med schema: "login" och login och password), med headern x-token eller via OpenPlatform (installation och första start).

Åtgärderna

PluginAnrop (schema)Behörighet
Accountlogin, logout, admin_read, admin_save (namn, login, lösenord), accountsessionen
Pagespages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (läser HTML), pages_save_html (id, html, upp till 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, och uppladdningarna nedanfiles
Settingssettings_read, settings_save, settings_test (testar SMTP-inställningarna), chatgptsettings
Dashboarddashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_statsingen

Behörigheten admin (och varje användare med flaggan sa, inklusive tokenens Bot) får använda alla. Ett anrop utan behörighet får ett fel, och login är det enda anropet som inte behöver en session.

Skapa en sida och dess innehåll:

{ "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 svarar { "success": true }; läs id:t med pages_list. För en layout svarar layouts_save med layoutens id i value. När ett fält saknas i en uppdatering töms fältet (en title som du inte skickar sparas tom), så skicka hela posten.

Ladda upp filer

POST /admin/upload/ tar emot en multipart-uppladdning (upp till 10 MB) och POST /admin/upload/base64/ ett JSON-innehåll med en data-URI (png, jpeg eller gif). Båda svarar med en lista av { id, name, type, ext, size, url }, där url är /download/<id>.<ext>.

Säkerhetskopia, återställning och rensning

Tre rutter i controllers/api.js verkar på hela webbplatsen och kräver behörigheten admin:

RuttVad den gör
GET /admin/backup/laddar ner hela fillagringen (metadata, HTML för sidor och layouter, filer och inlägg) som en textfil uppkallad efter webbplatsen och datumet
POST /admin/restore/laddar upp en sådan fil (upp till 100 MB) och läser in den.
GET /admin/clear/raderar webbplatsens innehåll. Den släpper fillagringen och läser in den igen, så sidor, layouter, widgetar och resten tas bor

Gör en säkerhetskopia innan du provar någon av dem, öppna aldrig /admin/clear/ i en webbläsare av nyfikenhet och håll token privat: med den tömmer ett enda GET webbplatsen.