mirror of
https://github.com/profullstack/logicsrc.git
synced 2026-08-13 14:37:26 +00:00
Add an autoblog webhook receiver and a Supabase-backed blog to logicsrc-web (the app had no Supabase usage before). - Migration: blog_posts table (RLS: public reads published, service-role writes). Applied to the linked project. - POST /api/webhooks/blog: verifies the Standard Webhooks signature against BLOG_WEBHOOK_SECRET via @profullstack/autoblog verifyAndParse (no admin user — shared secret only) and upserts the post by slug. - /blog index + /blog/[slug] render published posts from the table. - /blog/rss.xml and /sitemap.xml are now dynamic, generated from the table; removed the static public/sitemap.xml and public/blog/rss.xml. - BLOG_WEBHOOK_SECRET added to .env.example. Verified end-to-end: a signed sample post delivered 200 and appeared in the index, post page, RSS, and sitemap; build + typecheck pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
35 lines
989 B
Text
35 lines
989 B
Text
# Canonical public site URL (used for CoinPay redirect/webhook URLs and secure cookies)
|
|
PUBLIC_URL=https://logicsrc.com
|
|
COMMANDBOARD_API_URL=http://localhost:4010
|
|
COMMANDBOARD_TOKEN=
|
|
COMMANDBOARD_DID=
|
|
COMMANDBOARD_AGENT_KEY=
|
|
LOGICSRC_SCHEMA_VERSION=0.1
|
|
|
|
COINPAY_API_URL=
|
|
COINPAY_API_KEY=
|
|
COINPAY_MERCHANT_ID=
|
|
COINPAY_BUSINESS_ID=
|
|
COINPAY_ELIGIBILITY_MERCHANT_ID=
|
|
COINPAY_ELIGIBILITY_API_KEY=
|
|
COINPAY_HIRE_US_BLOCKCHAIN=USDC_POL
|
|
COINPAY_WEBHOOK_SECRET=
|
|
COINPAY_OAUTH_ISSUER=https://coinpayportal.com
|
|
COINPAY_OAUTH_CLIENT_ID=
|
|
COINPAY_OAUTH_CLIENT_SECRET=
|
|
COINPAY_OAUTH_REDIRECT_URI=https://logicsrc.com/api/oauth/coinpay/callback
|
|
COINPAY_OAUTH_SCOPES=openid profile email
|
|
LOGICSRC_SESSION_SECRET=
|
|
|
|
UGIG_API_URL=
|
|
UGIG_API_KEY=
|
|
UGIG_WEBHOOK_SECRET=
|
|
|
|
SH1PT_API_URL=
|
|
SH1PT_API_KEY=
|
|
SH1PT_WEBHOOK_SECRET=
|
|
|
|
# Shared secret for the blog-post ingestion webhook (no admin user; the
|
|
# webhook authenticates callers by this secret instead). Generate with:
|
|
# openssl rand -hex 32
|
|
BLOG_WEBHOOK_SECRET=
|