Marketing Data BFF Content Intent Model¶
Purpose¶
This document captures the current live marketing-data BFF surface for articles, products, collections, and properties, and proposes how oves-sites should model these objects as content-management intents rather than local object copies.
This document is based on live introspection and smoke tests against the marketing GraphQL BFF on March 4, 2026.
Core Direction¶
- do not create local shadow copies of live BFF-managed marketing objects unless there is a temporary migration reason
- keep local files focused on intent, curation, metadata, and usage guidance
- use BFF object ids/keys as references, not as duplication targets
Domain Layout¶
docs/articles/for article and article-collection intentdocs/products/for product, property, and product-collection intentdocs/sites/for site/page adoption of those objects
Current Reality vs Target Direction¶
Current repo reality:
docs/articles/*.mdstill contains local article staging bodies and metadatadocs/articles/collections/*.yamlstill contains collection-level staging metadata- site intents under
docs/intents/sites/*.intent.yamldrive ISR scaffolding
Target direction:
- article and product folders increasingly describe management intent for BFF-backed objects
- BFF becomes the operational object system
- cleaned article-domain artifacts should be persisted into CMS through the BFF
Live Endpoint Base¶
The current marketing GraphQL BFF accepts POST requests at both:
https://dirac-fed-dev.omnivoltaic.com/marketinghttps://dirac-fed-dev.omnivoltaic.com/marketing/graphql
Verified Endpoint Families¶
Article¶
getArticlegetArticleByIdgetArticlescreateArticleupdateArticledeleteArticle
Article Collection¶
getArticleCollectiongetArticleCollectionscreateArticleCollectionupdateArticleCollectiondeleteArticleCollectionaddArticlesToCollectionremoveArticlesFromCollectionreplaceArticlesInCollection
Product¶
getProductgetProductHeadersgetProductsByKeyscreateProductupdateProductdeleteProduct
Product Collection¶
getProductCollectiongetProductCollectionsgetProductCollectionHeadersgetProductCollectionsByKeyscreateProductCollectiondeleteProductCollectionsetProductCollections
Observed risk:
updateProductCollectionis present in schema but was previously observed failing live
Property¶
getPropertygetPropertiesByKeysgetPropertyHeaderscreatePropertyupdatePropertydeleteProperty
Important Shape Notes¶
Property Model¶
The live property model currently uses:
propertyKeynamepropertyBaseunitHintsequencedescription
It does not use:
unittype
Article Collection Membership Type¶
The live article collection membership mutations use:
articleIds: [String!]!
Do not assume integer ids here.