[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"journal-post-summercms-0-1-21":3},{"author":4,"categories":8,"content":9,"content_html":10,"created_at":11,"excerpt":12,"featured_image_url":9,"featured_images":13,"id":14,"is_pinned":15,"metadata":9,"next_post":16,"previous_post":20,"published":24,"published_at":25,"reading_time":6,"related_posts":26,"slug":27,"sources":9,"tags":28,"title":29,"translations":9,"updated_at":11},{"first_name":5,"id":6,"last_name":5,"login":7},"",1,"jakubzych@gmail.com",[],null,"\u003Ch2>Highlights\u003C\u002Fh2>\n\u003Cp>Admins can create personal API tokens with scopes and use them to call admin and plugin APIs, alongside the cookie session.\u003C\u002Fp>\n\u003Ch2>Added\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Ccode>pact.HasTokenScopes\u003C\u002Fcode> lets plugins declare token scopes; requests carrying a \u003Ccode>g15_\u003C\u002Fcode> token pass through a combined backend guard and are denied by default outside their scopes.\u003C\u002Fli>\n\u003Cli>\u003Ccode>cabana.ResolveBackend\u003C\u002Fcode> resolves the backend user from either a session or a token.\u003C\u002Fli>\n\u003Cli>An API tokens panel on My account: create a token (shown once), list tokens, show revoked ones and revoke with confirmation.\u003C\u002Fli>\n\u003Cli>\u003Ccode>admin:token\u003C\u002Fcode> console commands.\u003C\u002Fli>\n\u003Cli>Tokens record when they were last used.\u003C\u002Fli>\n\u003Cli>Module READMEs describe each module's role in the framework.\u003C\u002Fli>\n\u003C\u002Ful>\n","2026-10-17T21:26:28+00:00","Personal admin API tokens with scopes: plugins declare scopes, admins create tokens in My account or from the CLI.",[],21,false,{"id":17,"slug":18,"title":19},20,"summercms-0-1-20","SummerCMS 0.1.20",{"id":21,"slug":22,"title":23},22,"summercms-0-1-22","SummerCMS 0.1.22",true,"2026-10-11T11:07:05+00:00",[],"summercms-0-1-21",[],"SummerCMS 0.1.21"]