Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion daprdocs/assets/scss/_content.scss
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,18 @@
}

a.btn {
background-color: $highlight1;
text-decoration: none;
color: white;
}

// Buttons are orange by default. The button shortcode's `color` parameter
// defaults to "tertiary", so a button without an explicit color renders
// orange. Specifying e.g. color="secondary" or color="primary" falls
// through to Bootstrap's theme colors instead.
a.btn-tertiary {
background-color: $highlight1;
}

.alert:not(:first-child) {
margin-top: 2 * $spacer;
margin-bottom: 2 * $spacer;
Expand Down
36 changes: 36 additions & 0 deletions daprdocs/content/en/enterprise-support/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
type: docs
title: "Enterprise support & services"
linkTitle: "Enterprise support & services"
weight: 70
description: "Commercial support, certified distributions, and managed services for Dapr"
---

For organizations running Dapr in production that need enterprise-grade support, service-level agreements (SLAs), certified distributions, or fully managed services, commercial offerings are available from the Dapr ecosystem. The following offerings are provided by [Diagrid](https://www.diagrid.io/), a leading contributor to the Dapr project.

## Dapr open source support

Diagrid provides 24/7 enterprise support for open source Dapr, with a guaranteed one-hour response time for critical production issues. Support is offered across three tiers (Standard, Select, and Premium) with varying response times, security patching commitments, architecture reviews, and training sessions tailored to your organization's needs, across all cloud platforms.

{{< button text="Learn more about Dapr open source support" link="https://docs.diagrid.io/dapr-open-source/dapr-support" >}}

## Diagrid Dapr Distribution for Enterprise (D3E)

D3E is a custom distribution of the open source Dapr project that enhances it with additional security and scalability capabilities, while maintaining full compatibility with the Dapr APIs and SDKs. Designed for large-scale production environments, it offers multi-tenancy support, reduced security permissions, enterprise support with guaranteed response times, and CVE backports to custom versions. It is aimed at organizations with stringent security requirements or substantial Dapr deployments.

{{< button text="Learn more about D3E" link="https://docs.diagrid.io/dapr-open-source/d3e" >}}

## Diagrid Conductor

<br /><img src="/images/diagrid-conductor.png" alt="Diagrid Conductor diagram" width="800">

[Diagrid Conductor](https://www.diagrid.io/conductor) quickly and securely connects to all your Kubernetes clusters running Dapr and Daprized applications, delivering operational excellence, security and reliability, and insights and collaboration. It provides one-click installation, upgrade, and patching of Dapr, automated best-practice checks through Advisor, resource usage reporting and recommendations, and an application graph that visualizes your services and infrastructure.

{{< button text="Learn more about Diagrid Conductor" link="https://docs.diagrid.io/dapr-open-source/conductor" >}}

## Diagrid Catalyst

Diagrid Catalyst is an AI orchestration platform that brings durable workflows, access control, and governance to AI agents and MCP servers. It delivers an AI-native workflow engine that integrates with existing agent frameworks, ensuring agents pick up where they left off in the event of any failure, from simple restarts to complete system outages. Catalyst also lets platform teams and developers issue cryptographic identities to agents, MCP servers, and tools, and apply policy-based access control across the organization.

{{< button text="Learn more about Diagrid Catalyst" link="https://www.diagrid.io/catalyst" >}}
{{< button text="Compare Dapr and Catalyst" link="https://docs.diagrid.io/dapr-open-source/dapr-vs-catalyst" color="secondary" >}}
48 changes: 48 additions & 0 deletions daprdocs/layouts/_partials/announcement-banner.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{{/*
Site-wide announcement banner.
Rendered from the navbar.html override (prepended before <nav>).
Config lives in hugo.yaml under params.announcements.
Items are filtered by their optional start/end date window at build time.
Emits NOTHING when disabled or when no items are active.
*/}}
{{ with .Site.Params.announcements }}
{{ if .enabled }}
{{ $now := now }}
{{ $active := slice }}
{{ range .items }}
{{ $show := true }}
{{ with .start }}{{ if $now.Before (time.AsTime .) }}{{ $show = false }}{{ end }}{{ end }}
{{/* end is exclusive at midnight of the given day */}}
{{ with .end }}{{ if $now.After (time.AsTime .) }}{{ $show = false }}{{ end }}{{ end }}
{{ if $show }}{{ $active = $active | append . }}{{ end }}
{{ end }}
{{ if gt (len $active) 0 }}
{{ $multi := gt (len $active) 1 }}
<div id="announcement-banner" class="announcement-banner" role="region" aria-label="Site announcements" data-rotate-interval="{{ .rotate_interval | default 6000 }}">
<div class="announcement-banner__inner">
{{ if $multi }}<button type="button" class="announcement-banner__nav announcement-banner__prev" aria-label="Previous announcement">&lsaquo;</button>{{ end }}
<div class="announcement-banner__viewport">
{{ range $i, $item := $active }}
<div class="announcement-banner__slide{{ if eq $i 0 }} is-active{{ end }}" data-index="{{ $i }}"{{ if ne $i 0 }} hidden{{ end }}>
<span class="announcement-banner__text">{{ $item.text }}</span>
{{ with $item.link }}
{{ $external := or (hasPrefix . "http://") (hasPrefix . "https://") }}
<a class="announcement-banner__link" href="{{ if $external }}{{ . | safeURL }}{{ else }}{{ . | relLangURL }}{{ end }}"{{ if $external }} rel="noopener noreferrer"{{ end }}>{{ $item.link_text | default "Learn more" }}</a>
{{ end }}
</div>
{{ end }}
</div>
{{ if $multi }}<button type="button" class="announcement-banner__nav announcement-banner__next" aria-label="Next announcement">&rsaquo;</button>{{ end }}
{{ if $multi }}
<div class="announcement-banner__dots" aria-label="Choose announcement">
{{ range $i, $item := $active }}
<button type="button" class="announcement-banner__dot{{ if eq $i 0 }} is-active{{ end }}" data-index="{{ $i }}" aria-label="Show announcement {{ add $i 1 }}" aria-current="{{ if eq $i 0 }}true{{ else }}false{{ end }}"></button>
{{ end }}
</div>
{{ end }}
<button type="button" class="announcement-banner__close" aria-label="Dismiss announcements">&times;</button>
</div>
</div>
{{ end }}
{{ end }}
{{ end }}
2 changes: 2 additions & 0 deletions daprdocs/layouts/_partials/hooks/body-end.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@

{{ partial "cookie-banner.html" . }}
<script src="/js/cookie-banner.js" defer></script>

<script src="/js/announcement-banner.js" defer></script>
2 changes: 2 additions & 0 deletions daprdocs/layouts/_partials/hooks/head-end.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,5 @@
{{ with .Site.Params.search.algolia }}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@docsearch/css@3" />
{{ end }}

<link rel="stylesheet" href="/css/announcement-banner.css" />
1 change: 1 addition & 0 deletions daprdocs/layouts/_partials/navbar.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{{ $cover := .HasShortcode "blocks/cover" }}
{{ partial "announcement-banner.html" . }}
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark {{ if $cover}} td-navbar-cover {{ end }}flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="{{ .Site.Home.RelPermalink }}">
<span class="navbar-logo">{{ if .Site.Params.ui.navbar_logo }}{{ with resources.Get "icons/logo.svg" }}{{ ( . | minify).Content | safeHTML }}{{ end }}{{ end }}</span><span class="font-weight-bold">{{ .Site.Title }}</span>
Expand Down
126 changes: 126 additions & 0 deletions daprdocs/static/css/announcement-banner.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
.announcement-banner {
box-sizing: border-box;
position: relative;
width: 100%;
z-index: 33;
background-color: #0d2192;
color: #ffffff;
font-family: inherit;
}

.announcement-banner[hidden] {
display: none;
}

.announcement-banner__inner {
box-sizing: border-box;
max-width: 1200px;
margin: 0 auto;
padding: 8px 16px;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
min-height: 40px;
}

.announcement-banner__viewport {
flex: 1 1 auto;
min-width: 0;
text-align: center;
}

.announcement-banner__slide {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 8px;
}

.announcement-banner__slide[hidden] {
display: none;
}

.announcement-banner__text {
font-size: 0.95rem;
line-height: 1.3;
}

.announcement-banner__link {
color: #ffffff;
text-decoration: underline;
font-weight: 600;
white-space: nowrap;
}

.announcement-banner__link:hover,
.announcement-banner__link:focus {
color: #ffffff;
opacity: 0.85;
}

.announcement-banner__nav,
.announcement-banner__close {
flex: 0 0 auto;
background: transparent;
border: 0;
color: #ffffff;
cursor: pointer;
line-height: 1;
padding: 4px 8px;
}

.announcement-banner__nav {
font-size: 1.4rem;
}

.announcement-banner__close {
font-size: 1.25rem;
margin-left: 4px;
}

.announcement-banner__nav:hover,
.announcement-banner__close:hover {
opacity: 0.8;
}

.announcement-banner__nav:focus-visible,
.announcement-banner__close:focus-visible,
.announcement-banner__dot:focus-visible,
.announcement-banner__link:focus-visible {
outline: 2px solid #ffffff;
outline-offset: 2px;
}

.announcement-banner__dots {
flex: 0 0 auto;
display: flex;
align-items: center;
gap: 6px;
}

.announcement-banner__dot {
width: 8px;
height: 8px;
padding: 0;
border: 0;
border-radius: 50%;
background: rgba(255, 255, 255, 0.45);
cursor: pointer;
}

.announcement-banner__dot.is-active {
background: #ffffff;
}

@media (max-width: 575.98px) {
.announcement-banner__inner {
padding: 6px 10px;
gap: 6px;
}

.announcement-banner__text {
font-size: 0.85rem;
}
}
Loading
Loading