Podgląd roboczy
API dostawcze zwraca wyłącznie treść opublikowaną. Trzy mechanizmy pozwalają właściwym osobom zobaczyć drafty bez otwierania drzwi wszystkim.
Publiczne odczyty zwracają treść opublikowaną i nic więcej. To właściwość API, a nie filtr, o którym Twoja aplikacja ma pamiętać - dlatego niedokończona strona nie wycieknie przez przypadek.
Znaczy to też, że zobaczenie draftu wymaga świadomego udowodnienia, kim jesteś. Są trzy drogi, dla trzech różnych osób.
1. Ciasteczko robocze - dla recenzentów
Koleżanka przeglądająca zmianę chce zobaczyć draft pod prawdziwym URL-em, bez edytora zasłaniającego widok. Route /api/draft ustawia ciasteczko przełączające publiczny route na treść roboczą:
/api/draft?secret=...&slug=/pricingRoute waliduje sekret względem CMSSY_DRAFT_SECRET, ustawia ciasteczko i przekierowuje na slug. Od tej chwili ta przeglądarka widzi drafty, dopóki ciasteczko nie zostanie wyczyszczone. Wszyscy inni dalej widzą serwis opublikowany.
2. Overlay roboczy - dla Ciebie, podczas developmentu
Dopisz ?cmssyDev=1 do dowolnego URL-a, żeby wyrenderować swój osobisty overlay roboczy:
http://localhost:3000/pricing?cmssyDev=1To nie jest współdzielony draft. To Twoja prywatna kopia robocza - i dlatego jest bezpieczna do wypróbowania bloku, który nie jest jeszcze wdrożony: nikomu innemu podgląd się nie zmieni.
Wymaga CMSSY_API_TOKEN i jest przeznaczony do developmentu. Bez flagi dostajesz treść opublikowaną, więc pozostawienie ustawionego tokenu nie zmienia tego, co widzą odwiedzający.
3. Tryb edycji - dla edytora
Ramka edytora wysyła cmssyEdit=1 plus pasujący cmssySecret. Middleware weryfikuje parę i przepisuje na /cmssy-edit, który serwuje treść roboczą i montuje most edycyjny.
Niezweryfikowane ?cmssyEdit=1 nie robi nic. Sprawdza to smoke test, bo route podglądu ufający query stringowi to publiczny wyciek draftów z dodatkowymi krokami - zobacz testowanie.
Sekrety
CMSSY_DRAFT_SECRET- pilnuje mostu podglądu roboczego i trybu edycji. Dowolny losowy string; musi tylko zgadzać się z tym, co wysyła panel.CMSSY_API_TOKEN- wymagany dla overlaya?cmssyDev=1, bo odczyt czyjegoś prywatnego draftu to operacja uwierzytelniona.CMSSY_REVALIDATE_SECRET- pilnuje webhooka/api/revalidate, który jest osobną sprawą: unieważnia cache po publikacji i nie odsłania draftów.
Ustaw CMSSY_ADMIN_URL, jeśli hostujesz panel u siebie; baner podglądu używa go do linku "Otwórz w edytorze".
Publikacja a cache
Publikacja to nie deploy - i nie pojawia się też automatycznie. Twój publiczny route cache'uje się według własnej wartości revalidate, więc świeżo opublikowana strona może dalej serwować starą kopię, dopóki to okno nie minie.
Webhook /api/revalidate zamyka tę lukę: cmssy woła go przy publikacji, a route unieważnia dotknięte ścieżki. Jeśli zmiana jest opublikowana, a serwis dalej pokazuje starą wersję, sprawdź ten webhook, zanim zaczniesz podejrzewać CMS-a.
Następne kroki
- Route'y i strony - trzy kształty żądań, które obsługują te mechanizmy.
- Testowanie - dowód, że tryb edycji dalej odrzuca niezweryfikowane żądania.
- Tokeny API - tworzenie i ograniczanie
CMSSY_API_TOKEN.