- Subscription tiers -
+Access tiers
- User needs by persona -
+Persona needs
-
{gftdMarketplacePersonaNeeds.map((item) => (
-
@@ -253,14 +249,14 @@ export default function MarketplaceEntitlementPage() {
onClick={() => signIn(undefined, { callbackUrl: `/marketplace/entitlements/${slug}` })}
className="mt-6 rounded-lg bg-teal-600 px-5 py-2.5 text-sm font-medium text-white hover:bg-teal-500"
>
- Sign in to subscribe
+ Sign in to request access
) : hasActive ? (
Active entitlements: {activeKeys.join(', ')}
) : hasPending ? (- Pending operator activation. Use the landing page to review the tier and guardrail summary - before the workspace request is approved. + Pending operator activation. Review the access tier and guardrail summary on the listing before the + workspace request is approved.
) : ( )} @@ -289,7 +285,7 @@ export default function MarketplaceEntitlementPage() { ) : null}- Contract/PO-first billing — automated checkout is on the roadmap. Operator Keycloak grants run via{' '} + Contract/PO-first billing remains in place; automated checkout is on the roadmap. Operator Keycloak grants run via{' '}
diff --git a/portal/src/app/marketplace/gftd/page.tsx b/portal/src/app/marketplace/gftd/page.tsx index a90e179..0513170 100644 --- a/portal/src/app/marketplace/gftd/page.tsx +++ b/portal/src/app/marketplace/gftd/page.tsx @@ -5,13 +5,14 @@ import { CorporateFooter } from '@/components/corporate/CorporateFooter'; import { CorporateHeader } from '@/components/corporate/CorporateHeader'; import { gftdMarketplaceGuardrails, + gftdMarketplaceFaq, gftdMarketplacePersonaNeeds, gftdMarketplaceSubscriptionTiers, } from '@/lib/gftd-marketplace'; export const metadata = { title: 'GFTD Directory — Sankofa Marketplace', - description: 'Rights-aware entity intelligence with live approved source lanes and public-safe redaction.', + description: 'Institutional entity intelligence with approved live source lanes, public-safe redaction, and bounded access.', }; export default function GftdMarketplacePage() { @@ -24,26 +25,26 @@ export default function GftdMarketplacePage() {grant-marketplace-entitlements-keycloak.sh.GFTD Directory
- Rights-aware entity intelligence for approved live source lanes, redacted public-safe outputs, - subscription tiers, and bounded observability. + Institutional entity intelligence with approved live source lanes, public-safe redaction, + access tiers, and bounded observability.
{[ { icon: ShieldCheck, - title: 'Rights-aware by default', + title: 'Rights-governed by design', text: 'Public-safe outputs stay redacted, with source-rights and publication boundaries preserved.', }, { icon: BookOpen, title: 'Evidence-backed', - text: 'Live source ingestion and observability stay tied to documented approval and review artifacts.', + text: 'Live source ingestion and observability remain tied to documented approval and review artifacts.', }, { icon: Users, title: 'Marketplace-ready', - text: 'Subscription tiers and persona-based access are designed for institutional onboarding.', + text: 'Access tiers and persona-based controls are designed for institutional onboarding.', }, ].map((item) => { const Icon = item.icon; @@ -61,7 +62,7 @@ export default function GftdMarketplacePage() {- Subscription tiers
+Access tiers
{gftdMarketplaceSubscriptionTiers.map((tier) => (@@ -76,7 +77,7 @@ export default function GftdMarketplacePage() {@@ -111,14 +111,25 @@ export default function MarketplacePage() {- Who it serves
+Intended users
-
{gftdMarketplacePersonaNeeds.map((item) => (
- @@ -87,7 +88,7 @@ export default function GftdMarketplacePage() {
- +Guardrails
+Publication guardrails
-
{gftdMarketplaceGuardrails.map((item) => (
- - {item} @@ -95,18 +96,35 @@ export default function GftdMarketplacePage() {
+ +Frequently asked questions
++ {gftdMarketplaceFaq.map((item) => ( ++++ ))} ++ {item.question} +
+{item.answer}
+ diff --git a/portal/src/app/marketplace/page.tsx b/portal/src/app/marketplace/page.tsx index b37d1c3..2d3dfe5 100644 --- a/portal/src/app/marketplace/page.tsx +++ b/portal/src/app/marketplace/page.tsx @@ -28,14 +28,14 @@ export default function MarketplacePage() {Next step
- Review the subscription tiers, then request access through the entitlement flow. The listing is - designed to stay rights-aware and public-safe before any operator activation. + Review the access tiers and frequently asked questions, then request access through the entitlement + workflow. The listing remains rights-governed and public-safe before any operator activation.
- Request subscription+ Request access - View public docs + Review public docs Phoenix marketplace
Sovereign platform catalog
- Subscribe to ledger, identity, registry, wallet, orchestration, and Chain 138 onboarding services. - Sign in to manage entitlements and deployments. + Request access to ledger, identity, registry, wallet, orchestration, and Chain 138 onboarding + services. Sign in to manage entitlements and deployments.
- Sign in to subscribe + Sign in to request access{service.name}
{service.description}
{service.href ? ( - - View offering -- + + + View offering +) : null} ))} diff --git a/portal/src/lib/gftd-marketplace.ts b/portal/src/lib/gftd-marketplace.ts index e26b31d..82683ca 100644 --- a/portal/src/lib/gftd-marketplace.ts +++ b/portal/src/lib/gftd-marketplace.ts @@ -7,31 +7,31 @@ export interface GftdMarketplaceService extends PartnerStackService { export const gftdMarketplaceSubscriptionTiers = [ { name: 'Preview', - description: 'Evaluators, partners, and early adopters with public-safe demo data only.', - limits: 'No live restricted data, no authority claims, no production SLA.', + description: 'Evaluators, partners, and early adopters using public-safe demonstration data only.', + limits: 'No live restricted data, no authority claims, and no production SLA.', }, { name: 'Professional', - description: 'Operators, integrators, and compliance teams.', + description: 'Operators, integrators, and compliance teams with approved access.', limits: 'Approved sources only, role-based access, bounded query depth, and rate limits.', }, { name: 'Institutional', - description: 'Regulated firms, marketplaces, and service providers.', + description: 'Regulated firms, marketplaces, and service providers operating under review.', limits: 'Contractual use terms, approval gates, and stricter access control.', }, { name: 'Enterprise', - description: 'Market operators and platform teams.', + description: 'Market operators and platform teams requiring tenant-specific governance.', limits: 'Custom SLAs, tenant-specific redaction policies, and governance reporting.', }, ]; export const gftdMarketplacePersonaNeeds = [ 'Compliance analyst: rights status, publication boundaries, and audit trails.', - 'Integration engineer: stable API, live adapters, and predictable responses.', + 'Integration engineer: stable APIs, live adapters, and predictable responses.', 'Marketplace operator: packaging, tiers, onboarding, and feature gating.', - 'Legal counsel: evidence refs, disclaimers, and approval records.', + 'Legal counsel: evidence references, disclaimers, and approval records.', 'Operations / SRE: health checks, observability snapshots, and runtime limits.', 'Institutional customer: approved data, support, and acceptance artifacts.', ]; @@ -43,12 +43,35 @@ export const gftdMarketplaceGuardrails = [ 'No redistribution of restricted data without rights approval.', ]; +export const gftdMarketplaceFaq = [ + { + question: 'What does GFTD provide?', + answer: + 'A rights-aware entity directory with approved live source lanes, public-safe redaction, and bounded observability for institutional use.', + }, + { + question: 'Does access grant legal authority or payment rights?', + answer: + 'No. Marketplace access only governs use of the service. It does not confer legal authority, licensing, or payment authorization.', + }, + { + question: 'What is required before access is activated?', + answer: + 'The approved source-rights record, marketplace entitlement review, and operator activation path must all be satisfied.', + }, + { + question: 'Can restricted fields be republished?', + answer: + 'Only when the relevant rights, publication, and redaction controls explicitly permit it. Public-safe outputs remain redacted by default.', + }, +]; + export const gftdMarketplaceService: GftdMarketplaceService = { name: 'GFTD Directory', href: '/marketplace/gftd', productSlug: 'phoenix-gftd-directory', description: - 'Rights-aware entity intelligence with live approved source lanes, redacted public-safe outputs, subscription tiers, and bounded observability.', + 'Institutional entity intelligence with approved live source lanes, public-safe redaction, access tiers, and bounded observability.', serviceUrl: 'https://gftd.d-bis.org', category: 'Internet registry & compliance', };+ + {service.name === 'GFTD Directory' ? ( + + Request access + + + ) : null} +