Skip to main content

Setup

The SureInk Platform is a comprehensive, microservices-based Licensing Server, primarily built using the Spring Boot framework. It is designed to manage the entire lifecycle of software licenses, from creation and provisioning to tracking and renewals. The platform serves as the backend for SureInk applications, handling customer data, product definitions, subscriptions, orders, and payments. It exposes APIs for external applications to interact with its licensing capabilities and integrates with various third-party systems to streamline business operations.

Prerequisites

To build and run this project, you will need the following installed:

  • Java Development Kit (JDK) 11: The project is built using Java 11.
  • Apache Maven: Maven is used as the build and dependency management tool.
  • Docker (Recommended): Some modules might be designed to run as Docker containers, and a sureink-docker module exists.
  • Access to SureClinical Internal Repository: The project relies on an internal artifact repository hosted at artifactregistry://us-east1-maven.pkg.dev/sc-internal/sc-maven/. Ensure your Maven settings are configured to access this repository.

Core Functionality

The platform provides the following core functionalities:

  • License Management: Creation, activation, deactivation, renewal, and tracking of software licenses.
  • Product Catalog: Management of different software products, editions, and pricing plans.
  • Customer Management: Storing and managing customer information, including contacts and addresses.
  • Subscription Handling: Managing recurring subscriptions for products and services.
  • Order Processing: Handling orders for new licenses and renewals.
  • Payment Processing: Integration with payment gateways like Stripe for secure payment transactions.
  • Usage Tracking: Capabilities for monitoring and recording software usage (via sureink-usage-data).
  • Business Rules Management: Applying business logic and rules for licensing, pricing, etc. (via sureink-rules-engine).

Key Features & Technologies

  • Microservice Architecture: Built using Spring Boot, enabling scalability and modularity.
  • API-Driven: Exposes RESTful APIs (managed via sureink-gateway) allowing external applications (e.g., e-commerce frontends, internal tools) to request license creation, manage subscriptions, and query licensing information.
  • External System Integrations:
    • Stripe: For payment processing.
    • QuickBooks Online: For accounting and financial data synchronization.
    • WooCommerce: Likely for e-commerce integration (via wc-api-java).
    • Google Analytics: For tracking and reporting.
    • Salesforce & SureClinical: Integrations are likely handled via REST APIs, as specific SDKs were not prominent in the primary connector modules.
  • Data Model:
    • The sureink-model module defines core entities such as Customer, Product, License, Subscription, Order, and Payment.
    • Data is persisted in a PostgreSQL database, with schema managed by Liquibase.
  • Security: Leverages Keycloak for authentication and authorization.
  • Service Discovery: Uses Eureka (sureink-discovery-server) for dynamic service registration and discovery.
  • Event-Driven Capabilities: Utilizes Spring Kafka for asynchronous communication between services.

Architecture Overview

The SureInk Platform is built on a microservice architecture. Key components include:

  • sureink-gateway: The central API Gateway, routing external requests to the appropriate backend services.
  • sureink-discovery-server: (Eureka) Allows services to register and discover each other dynamically.
  • sureink-cloud-msa: The core "Cloud Master Subscription Agreement" service, handling primary business logic related to licensing, subscriptions, orders, and payments.