Behind Kontent.ai
Kontent.ai uses several services and platforms to provide a reliable authoring experience for customers and end-users. Are you evaluating Kontent.ai and want to find out what services it uses behind the scenes? Want to make informed decisions about your own app’s architecture? You’re in the right place.
The architecture of Kontent.ai in a nutshell
The core services behind Kontent.ai are running in Azure, a Microsoft-operated cloud computing service. The Azure infrastructure model used by Kontent.ai is Platform as a Service (PaaS) and it's also where your content is stored. All Azure resources (such as App Services, Cosmos DBs, Azure SQL databases) are regularly reviewed and secured based on the latest industry standards using Azure Security Center. We also have a security policy in place to ensure your content is safe.- Kontent.ai UI – A static web app built with React and TypeScript that communicates with the internal administration API to make any changes to the Kontent.ai project and its content.
- Management API – Kontent.ai API for managing projects, environments, settings, content model, content, and assets.
- Administration API – Internal Kontent.ai API used as a backend for the Kontent.ai UI. The API forwards requests to specific internal services depending on the action performed. For example, content changes are forwarded to an internal Elastic search service so that the content is reindexed.
- Elastic search – A service that indexes content in a Kontent.ai project and provides full-text search functionality to users in the Kontent.ai UI.
- Asynchronous tasks – A service that collects events and performs actions that don't need to be performed in real-time, such as sending an email.
- Write-optimize data – A database optimized for frequent write operations such as content changes made in the UI or via API.
- Data backup – A storage used for backups of customer projects.
- Event hub – A service forwarding content change events from the write-optimized database (internal API and Management API) to a read-optimized database (Delivery APIs).
- Event processing – A service that processes events from the Event hub and forwards them to other services.
- Delivery API – Kontent.ai API for delivering content items at scale.
- Read-optimized data – A database optimized for frequent read operations such as those performed via Delivery API.
- Webhook notifications – A service that sends HTTP POST requests to specific URLs based on the webhook configuration in a Kontent.ai project.
- Subscriptions & Billing – A service that manages data around subscriptions and billing. Calculates usage and billing reports and processes payments.
- Auth0 for authenticating Kontent.ai users
- SendGrid for sending email notifications
- FastSpring for subscription payments
- Fastly content delivery network (CDN) for delivering your content to your customers and users
How Kontent.ai stores your data
The data of your project is stored in a specific data center. In every data center, Kontent.ai uses a decoupled architecture for storing your content. The content you create is saved in two repositories: the content repository and the delivery repository.- The content repository is optimized for writing data. This data is used for the administration interface, full-text search, Management API, Subscription API, and backups.
- The delivery repository is optimized for reading data. This data is used for Delivery REST API and Delivery GraphQL API. To ensure high availability of the live data, the live and preview environments are isolated from one another.
Responsibilities in Kontent.ai
In the context of cloud services like Kontent.ai, security is usually guaranteed by cloud service providers only at some level, on some layers, and to a certain extent. To prevent any shadow zone of nobody, the shared responsibility model transparently defines areas for each contractual side. Here’s how responsibilities are divided between you, our customers, and us, your Kontent.ai service provider. By understanding and adhering to these security boundaries and shared responsibilities, you can collaborate effectively with us to maintain a secure environment for your data.Kontent.ai’s responsibilities
- Application security: Kontent.ai is responsible for securing the application layer, including the software and the data processed by it.
- Operating system: The security of the operating system on which the services run is maintained by both Kontent.ai and Azure (Kontent.ai’s cloud infrastructure provider).
- Network security: Kontent.ai manages the network controls and ensures secure communication within the network. The network security includes, for example:
- Blocking unsafe SSL ciphers
- Direct access to Azure datacenter
- Implementing a zero-trust architecture in which the main concept is "never trust, always verify". This ensures that each access is authenticated and authorized. Preventing attackers from laterally moving across the environment.
- Physical security: The physical security of data centers and other facilities where data is stored or processed is handled by Azure.
Customer’s responsibilities
- User and access management: Customers are responsible for managing who has access to their data, projects, and environments.
- Tokens: Customers must securely handle and store API keys used for authentication.
- Data classification: The customer must classify their data based on sensitivity, handle it accordingly, and categorize them into correct spaces.
- Content lifecycle: Customers oversee the state of their content, ensuring it’s in the correct workflow step, such as draft, published, archived, or any other custom step.
Shared responsibilities
- Devices:
- Customers are responsible for securing the devices they use to access Kontent.ai.
- Kontent.ai monitors malicious activity and blocks suspicious devices to prevent further malicious escalation.
- Custom integrations:
- Kontent.ai regularly reviews its public SDKs to make sure they’re secure to use.
- Customers may follow internal secure SDLC practices while developing their integrations.
- Single Sign-On (SSO):
- The configuration of SSO is a cooperative effort of both Kontent.ai and the customer.
- Kontent.ai provides secure access to the CMS for the customer.
- The customer uses an identity provider of their choice and is responsible for safeguarding the authentication credentials used to access Kontent.ai.