alpha
Login
or
Join now
lgtm.shop
/
commerce
Star
5
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Pilot atproto-native commerce backend
Star
5
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
commerce
/
crates
/
at
main
10 folders
Nate Moore
feat(dev): /dev/pay 303-redirects to success_url (uniform prod<->local return)
9hrs ago
7fcd04a2
atproto
feat(spaces): align permissioned addressing/type/authority with 0016 draft ats:// 6-component space_uri + space_ref_uri; orderSpace space declaration (type:space) whose collections are the four permissioned leaves; ensure_space uses the orderSpace space type (record collections unchanged); buyer OAuth scope is space:...orderSpace; space_did authority = store_did (simplespace, no minted per-space DID). PG-canonical runtime behavior unchanged.
1 week ago
claims
M7 T29: claim verify against named key + verified/unrevoked backer wall Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 month ago
core
feat(config): add LGTM_SHOP_URL to derive both checkout redirect URLs Stripe success/cancel redirects belong on the storefront (www), not the backend public_url. Add LGTM_SHOP_URL as the storefront base so a single var drives both redirects; falls back to public_url when unset. LGTM_CHECKOUT_SUCCESS_URL / LGTM_CHECKOUT_CANCEL_URL still override individually. Documented in .env.example and the README env table.
9 hours ago
db
db: tenant, store_signing_key, integration_config tables + sealed-column models Migration 0002 adds the three tables verbatim from SPEC §6. models.rs is wired into crates/db; Tenant, StoreSigningKey, and IntegrationConfig structs derive FromRow. StoreSigningKey::new_sealed/open_private and IntegrationConfig::new_sealed/open_config round-trip through lgtm_core::crypto::seal/open. Three #[sqlx::test] pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 month ago
integrations
fix(checkout): make real Stripe checkout succeed (was a bare 400 for every order) With fake-payments off, every POST /api/checkout returned an empty-body 400. The real Stripe path could never succeed: place_order sent empty success_url/ cancel_url and DbVariantLookup left product_uri (used as the Stripe line-item name) empty. Stripe rejects both, and the handler swallowed the error with a bare `Err(_) => 400`, making it undebuggable from the storefront. - Thread configurable redirect URLs through place_order. New optional env vars LGTM_CHECKOUT_SUCCESS_URL / LGTM_CHECKOUT_CANCEL_URL, defaulting to {public_url}/checkout/success?session_id={CHECKOUT_SESSION_ID} and {public_url}/cart. - DbVariantLookup joins product for the real at_uri + title; carry a display name through VariantInfo -> DraftLine -> OrderItem to the Stripe line item (fallback title -> SKU -> "Item"). Name is a checkout-time snapshot, not persisted in P1. - Map checkout errors: validation/currency/not-found -> descriptive 400; missing key / provider rejection -> logged in full + generic 502, never a bare empty 400. Tests: place_order fake now asserts non-empty URLs + names are forwarded; DbVariantLookup join covered (title + SKU fallback); config default/override.
9 hours ago
receipts
M7 T27: receipt mint + sha256 hash + offline verify + valid-if-live revocation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 month ago
server
feat(dev): /dev/pay 303-redirects to success_url (uniform prod<->local return) Previously /dev/pay returned a terminal text page, so the fake-payments browser flow diverged from Stripe (which redirects to success_url). Now it 303s to the resolved success_url with {CHECKOUT_SESSION_ID} substituted by dev_{order_id}, so the storefront return flow is identical prod and local — no fake-mode branch needed in checkout.ts.
9 hours ago
spaces
feat(spaces): align permissioned addressing/type/authority with 0016 draft ats:// 6-component space_uri + space_ref_uri; orderSpace space declaration (type:space) whose collections are the four permissioned leaves; ensure_space uses the orderSpace space type (record collections unchanged); buyer OAuth scope is space:...orderSpace; space_did authority = store_did (simplespace, no minted per-space DID). PG-canonical runtime behavior unchanged.
1 week ago
surfaces
fix(checkout): make real Stripe checkout succeed (was a bare 400 for every order) With fake-payments off, every POST /api/checkout returned an empty-body 400. The real Stripe path could never succeed: place_order sent empty success_url/ cancel_url and DbVariantLookup left product_uri (used as the Stripe line-item name) empty. Stripe rejects both, and the handler swallowed the error with a bare `Err(_) => 400`, making it undebuggable from the storefront. - Thread configurable redirect URLs through place_order. New optional env vars LGTM_CHECKOUT_SUCCESS_URL / LGTM_CHECKOUT_CANCEL_URL, defaulting to {public_url}/checkout/success?session_id={CHECKOUT_SESSION_ID} and {public_url}/cart. - DbVariantLookup joins product for the real at_uri + title; carry a display name through VariantInfo -> DraftLine -> OrderItem to the Stripe line item (fallback title -> SKU -> "Item"). Name is a checkout-time snapshot, not persisted in P1. - Map checkout errors: validation/currency/not-found -> descriptive 400; missing key / provider rejection -> logged in full + generic 502, never a bare empty 400. Tests: place_order fake now asserts non-empty URLs + names are forwarded; DbVariantLookup join covered (title + SKU fallback); config default/override.
9 hours ago
worker
fix(checkout): make real Stripe checkout succeed (was a bare 400 for every order) With fake-payments off, every POST /api/checkout returned an empty-body 400. The real Stripe path could never succeed: place_order sent empty success_url/ cancel_url and DbVariantLookup left product_uri (used as the Stripe line-item name) empty. Stripe rejects both, and the handler swallowed the error with a bare `Err(_) => 400`, making it undebuggable from the storefront. - Thread configurable redirect URLs through place_order. New optional env vars LGTM_CHECKOUT_SUCCESS_URL / LGTM_CHECKOUT_CANCEL_URL, defaulting to {public_url}/checkout/success?session_id={CHECKOUT_SESSION_ID} and {public_url}/cart. - DbVariantLookup joins product for the real at_uri + title; carry a display name through VariantInfo -> DraftLine -> OrderItem to the Stripe line item (fallback title -> SKU -> "Item"). Name is a checkout-time snapshot, not persisted in P1. - Map checkout errors: validation/currency/not-found -> descriptive 400; missing key / provider rejection -> logged in full + generic 502, never a bare empty 400. Tests: place_order fake now asserts non-empty URLs + names are forwarded; DbVariantLookup join covered (title + SKU fallback); config default/override.
9 hours ago