[{"data":1,"prerenderedAt":146},["ShallowReactive",2],{"content:\u002Fdocs\u002Fgetting-started":3},{"id":4,"title":5,"body":6,"description":137,"draft":138,"extension":139,"meta":140,"navigation":141,"path":142,"reviewDraft":138,"seo":143,"stem":144,"__hash__":145},"pages\u002Fdocs\u002Fgetting-started.md","Plan your software licensing integration",{"type":7,"value":8,"toc":124},"minimark",[9,14,18,23,26,29,34,37,40,43,47,50,53,56,60,63,66,70,73,76,80,83,105,108,112,115],[10,11,13],"h1",{"id":12},"plan-your-first-integration","Plan your first integration.",[15,16,17],"p",{},"Start with one product, one commercial source and one runtime. This guide explains Liceno’s intended integration model so you can define your requirements for your private beta evaluation. It is a planning guide; production API references and installation instructions are not yet published here.",[19,20,22],"h2",{"id":21},"_1-identify-the-commercial-source","1. Identify the commercial source",[15,24,25],{},"Record where the agreement lives: a billing subscription, a marketplace agreement or an enterprise contract. Identify the provider account as well as the external customer and agreement IDs. Different accounts can have overlapping identifiers.",[15,27,28],{},"Decide which upstream state is authoritative for access. An event can signal that something changed; it is not necessarily a complete or current description of the customer's rights.",[30,31,33],"h3",{"id":32},"connect-the-systems-that-already-own-the-relationship","Connect the systems that already own the relationship",[15,35,36],{},"Commerce and billing systems describe what was bought; marketplace and enterprise agreements may express those rights differently. Liceno’s intended role is to normalize these sources before projecting rights into software enforcement.",[15,38,39],{},"Stripe, Paddle and Lemon Squeezy are initial connection priorities. Lago, internal contract systems and Azure Marketplace are exploration paths; AWS is a later direction. Cloud GTM intermediaries such as Suger, Tackle, Clazar and Labra are also potential paths for marketplace state. Confirm each integration’s availability and scope for your private beta evaluation.",[15,41,42],{},"Entitlement context can also inform rollout tools such as LaunchDarkly or GrowthBook, with events for CRM and analytics. These are exploration paths: rollout tools retain their targeting and experimentation responsibilities, and commercial providers retain billing, tax and marketplace operations.",[19,44,46],{"id":45},"_2-define-the-software-entitlement","2. Define the software entitlement",[15,48,49],{},"Translate the commercial agreement into rights your application understands, independently of the provider's terminology.",[15,51,52],{},"For example, a subscription to a desktop editor might grant high-resolution export, a seat allowance and access to updates for a defined period. The entitlement captures those rights; a signed credential carries the subset the application needs to check.",[15,54,55],{},"Consider features, quantitative limits, seats, devices, concurrent use, metering policies, version or maintenance rights, and expiry or grace periods. Which dimensions matter depends on your software.",[19,57,59],{"id":58},"_3-choose-how-the-runtime-checks-access","3. Choose how the runtime checks access",[15,61,62],{},"A connected application can use current server state. An intermittently connected or offline application needs an explicit credential lifetime and refresh policy. Air-gapped deployments also need a practical way to transfer credentials and updates.",[15,64,65],{},"Local verification checks a signature with a trusted public key, then checks the intended issuer, product or audience, validity period and required rights. A valid signature alone is not enough to enable a feature.",[19,67,69],{"id":68},"_4-plan-the-lifecycle","4. Plan the lifecycle",[15,71,72],{},"Work through upgrades, downgrades, renewals, refunds, suspension and manual overrides. The intended reconciliation model converges authoritative commercial state into canonical rights despite duplicate, retried or out-of-order events.",[15,74,75],{},"Decide what happens to credentials already issued. A disconnected application cannot immediately observe a refund or revocation. Token lifetimes, refresh rules and reconnection bound how long an older grant may remain usable.",[19,77,79],{"id":78},"_5-validate-the-complete-path","5. Validate the complete path",[15,81,82],{},"Use scenarios that cross the commercial and runtime boundary:",[84,85,86,90,93,96,99,102],"ul",{},[87,88,89],"li",{},"A new agreement grants only the intended features and limits.",[87,91,92],{},"An altered, expired or wrong-product credential is rejected.",[87,94,95],{},"Replayed or out-of-order events converge to the correct rights.",[87,97,98],{},"Refund and downgrade behavior matches the defined offline policy.",[87,100,101],{},"Key rotation and credential refresh behave as expected.",[87,103,104],{},"Separate provider accounts and billing migrations preserve customer identity and rights.",[15,106,107],{},"The exact connector behavior, key-management procedure and SDK calls need verified implementation guidance before production use.",[19,109,111],{"id":110},"bring-your-use-case","Bring your use case",[15,113,114],{},"Tell us where you sell, where your software runs and which lifecycle failures cost your team time. We can use this model to assess the integration and deployment requirements together.",[15,116,117],{},[118,119,123],"a",{"className":120,"href":122},[121],"button-link","\u002Fcontact","Discuss your integration",{"title":125,"searchDepth":126,"depth":126,"links":127},"",2,[128,132,133,134,135,136],{"id":21,"depth":126,"text":22,"children":129},[130],{"id":32,"depth":131,"text":33},3,{"id":45,"depth":126,"text":46},{"id":58,"depth":126,"text":59},{"id":68,"depth":126,"text":69},{"id":78,"depth":126,"text":79},{"id":110,"depth":126,"text":111},"Define commercial sources, canonical entitlements, offline policies and lifecycle reconciliation for a Liceno integration.",false,"md",{},true,"\u002Fdocs\u002Fgetting-started",{"title":5,"description":137},"docs\u002Fgetting-started","-XbG_-TfCgyYyo6P01a0j7yoLibmUWPhRR0-BkkGcT0",1793481086893]