diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 6d6d600ecc..d451442ac3 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -57,6 +57,8 @@
/docontrol/ @lielran @DataDog/ecosystems-review
/doctordroid/ @dimittal @DataDog/ecosystems-review
/dylibso-webassembly/ @nilslice @bhelx @DataDog/ecosystems-review
+/doppler/ @nmanoogian @apazzolini @doppler-admin @DataDog/ecosystems-review
+/doppler/assets/logs/ @nmanoogian @apazzolini @doppler-admin @DataDog/ecosystems-review @DataDog/logs-backend
/embrace_mobile/ @jpmunz @joage @DataDog/ecosystems-review
/eppo/ @emetelka support@geteppo.com
/eventstore/ @Xorima
diff --git a/doppler/CHANGELOG.md b/doppler/CHANGELOG.md
new file mode 100644
index 0000000000..3c0d7333df
--- /dev/null
+++ b/doppler/CHANGELOG.md
@@ -0,0 +1,7 @@
+# CHANGELOG - Doppler
+
+## 1.0.0 / 2024-09-06
+
+**_Added_**:
+
+* Initial Release
diff --git a/doppler/README.md b/doppler/README.md
new file mode 100644
index 0000000000..428eab198e
--- /dev/null
+++ b/doppler/README.md
@@ -0,0 +1,73 @@
+# Agent Check: Doppler
+
+## Overview
+
+[Doppler][1] is a secrets manager designed with both security and developer productivity in mind.
+Doppler allows you to securely store secrets (for example: API keys, database credentials, and other sensitive values) and deliver them to your applications.
+
+This integration sends Activity Logs from [Doppler][1] to Datadog, allowing you to monitor changes to your workplace.
+This includes:
+
+- Modifications to projects, environments, and secrets
+- Changes to your team, including new members, role changes, and removals
+- Changes to workplace settings, including integrations and security features
+
+Doppler does not collect any data from your Datadog account.
+
+## Setup
+
+### Installation
+
+1. Click **Connect Accounts** on the Doppler integration tile to connect Datadog with Doppler.
+2. Log into Doppler or create an account if you have not already.
+3. Select the Doppler workplace that you would like to configure. This step will automatically be skipped if you only have one workplace.
+4. Click **Settings** to navigate to your workplace settings.
+5. Under **Logging Services** > **Datadog**, click **Connect**.
+6. Choose your Datadog site from the Dropdown.
+7. Log into Datadog. This step will be skipped if you are already signed in.
+8. Review the Datadog permissions that will be granted to Doppler and click **Authorize**.
+
+Once the installation is complete, Doppler Activity Logs will automatically start flowing to Datadog.
+
+### Configuration
+
+The integration will automatically send all Doppler Activity Logs to Datadog, no further configuration is available at this time.
+
+### Validation
+
+During installation, Doppler creates a test log to verify that the installed credentials work properly. Verify that this test log is present in your logs to verify the installation.
+
+## Data Collected
+
+Doppler does not collect any information from your Datadog account.
+
+### Uninstallation
+
+- Go to your [Doppler workplace settings][4] and disconnect the Datadog integration
+- Remove all API keys associated with this integration by searching for the integration name on the [Datadog API Keys page][5].
+
+### Metrics
+
+Doppler does not report any metrics.
+
+### Service Checks
+
+Doppler does not provide any service checks.
+
+### Logs
+
+Doppler creates a log for every entry in your workplace's [Doppler Activity Log][2]. The type of log, as well as any associated log parameters, will be included in the payload.
+
+### Events
+
+Doppler does not produce any Datadog events.
+
+## Troubleshooting
+
+Need help? Contact [Doppler support][3].
+
+[1]: https://www.doppler.com
+[2]: https://docs.doppler.com/docs/workplace-logs
+[3]: https://support.doppler.com
+[4]: https://dashboard.doppler.com/workplace/settings
+[5]: https://app.datadoghq.com/organization-settings/api-keys
diff --git a/doppler/assets/configuration/spec.yaml b/doppler/assets/configuration/spec.yaml
new file mode 100644
index 0000000000..447f6dc3eb
--- /dev/null
+++ b/doppler/assets/configuration/spec.yaml
@@ -0,0 +1,10 @@
+name: Doppler
+files:
+- name: doppler.yaml
+ options:
+ - template: init_config
+ options:
+ - template: init_config/default
+ - template: instances
+ options:
+ - template: instances/default
diff --git a/doppler/assets/dashboards/doppler_overview.json b/doppler/assets/dashboards/doppler_overview.json
new file mode 100644
index 0000000000..e781282a84
--- /dev/null
+++ b/doppler/assets/dashboards/doppler_overview.json
@@ -0,0 +1,242 @@
+{
+ "title": "Doppler Dashboard",
+ "description": "This dashboard provides a high-level overview of your workplace's Doppler activity.\n\nClone this template dashboard to make changes and add your own graph widgets.",
+ "widgets": [
+ {
+ "id": 2579449116060402,
+ "definition": {
+ "type": "image",
+ "url": "https://www.doppler.com/avatar/doppler_circle_800.png",
+ "sizing": "contain",
+ "margin": "md",
+ "has_background": false,
+ "has_border": false,
+ "vertical_align": "center",
+ "horizontal_align": "center"
+ },
+ "layout": { "x": 0, "y": 0, "width": 2, "height": 3 }
+ },
+ {
+ "id": 1029719899125074,
+ "definition": {
+ "type": "note",
+ "content": "[Doppler](https://doppler.com) is a secrets manager designed with both security and developer productivity in mind.\n\nThis dashboard provides a high-level overview of your Doppler [Activity Logs](https://docs.doppler.com/docs/workplace-logs), allowing you to identify patterns in:\n\n- Different types of activities\n- Temporal patterns in activities\n- Which users are performing activities\n\nRead the [Doppler Datadog docs](https://docs.doppler.com/docs/datadog) for more information.",
+ "background_color": "white",
+ "font_size": "14",
+ "text_align": "left",
+ "vertical_align": "top",
+ "show_tick": false,
+ "tick_pos": "50%",
+ "tick_edge": "left",
+ "has_padding": true
+ },
+ "layout": { "x": 2, "y": 0, "width": 10, "height": 3 }
+ },
+ {
+ "id": 4210531550520016,
+ "definition": {
+ "title": "Activity Logs by Type",
+ "title_size": "16",
+ "title_align": "left",
+ "show_legend": true,
+ "legend_layout": "auto",
+ "legend_columns": ["avg", "min", "max", "value", "sum"],
+ "type": "timeseries",
+ "requests": [
+ {
+ "formulas": [{ "formula": "query1" }],
+ "queries": [
+ {
+ "data_source": "logs",
+ "name": "query1",
+ "indexes": ["*"],
+ "compute": { "aggregation": "count" },
+ "group_by": [
+ {
+ "facet": "@type",
+ "limit": 10,
+ "sort": { "order": "desc", "aggregation": "count" }
+ }
+ ],
+ "search": { "query": "source:doppler" },
+ "storage": "hot"
+ }
+ ],
+ "response_format": "timeseries",
+ "style": {
+ "palette": "datadog16",
+ "order_by": "values",
+ "line_type": "solid",
+ "line_width": "normal"
+ },
+ "display_type": "bars"
+ }
+ ]
+ },
+ "layout": { "x": 0, "y": 3, "width": 8, "height": 4 }
+ },
+ {
+ "id": 5108936822527020,
+ "definition": {
+ "title": "Activity Log Counts by Type",
+ "title_size": "16",
+ "title_align": "left",
+ "type": "query_table",
+ "requests": [
+ {
+ "queries": [
+ {
+ "data_source": "logs",
+ "name": "query1",
+ "indexes": ["*"],
+ "compute": { "aggregation": "count" },
+ "group_by": [
+ {
+ "facet": "@type",
+ "limit": 10,
+ "sort": { "order": "desc", "aggregation": "count" }
+ }
+ ],
+ "search": { "query": "source:doppler" },
+ "storage": "hot"
+ }
+ ],
+ "response_format": "scalar",
+ "sort": {
+ "count": 10,
+ "order_by": [{ "type": "formula", "index": 0, "order": "desc" }]
+ },
+ "formulas": [
+ {
+ "cell_display_mode": "bar",
+ "alias": "Count",
+ "formula": "query1"
+ }
+ ]
+ }
+ ],
+ "has_search_bar": "auto"
+ },
+ "layout": { "x": 8, "y": 3, "width": 4, "height": 4 }
+ },
+ {
+ "id": 2954602671560148,
+ "definition": {
+ "type": "note",
+ "content": "Break down activity logs by type over time intervals to identify operational usage patterns.",
+ "background_color": "green",
+ "font_size": "14",
+ "text_align": "left",
+ "vertical_align": "center",
+ "show_tick": true,
+ "tick_pos": "50%",
+ "tick_edge": "top",
+ "has_padding": true
+ },
+ "layout": { "x": 0, "y": 7, "width": 12, "height": 1 }
+ },
+ {
+ "id": 788257060754552,
+ "definition": {
+ "title": "Activity Logs by Timestamp",
+ "title_size": "16",
+ "title_align": "left",
+ "show_legend": false,
+ "type": "heatmap",
+ "requests": [
+ {
+ "formulas": [{ "formula": "query1" }],
+ "queries": [
+ {
+ "data_source": "logs",
+ "name": "query1",
+ "indexes": ["*"],
+ "compute": { "aggregation": "count" },
+ "group_by": [],
+ "search": { "query": "source:doppler" },
+ "storage": "hot"
+ }
+ ],
+ "response_format": "timeseries",
+ "style": { "palette": "dog_classic" }
+ }
+ ]
+ },
+ "layout": { "x": 0, "y": 8, "width": 8, "height": 3 }
+ },
+ {
+ "id": 7305773172963494,
+ "definition": {
+ "title": "Activity Log Counts by User",
+ "title_size": "16",
+ "title_align": "left",
+ "type": "query_table",
+ "requests": [
+ {
+ "queries": [
+ {
+ "data_source": "logs",
+ "name": "query1",
+ "indexes": ["*"],
+ "compute": { "aggregation": "count" },
+ "group_by": [
+ {
+ "facet": "@usr.email",
+ "limit": 10,
+ "sort": { "order": "desc", "aggregation": "count" }
+ }
+ ],
+ "search": { "query": "source:doppler" },
+ "storage": "hot"
+ }
+ ],
+ "response_format": "scalar",
+ "sort": {
+ "count": 10,
+ "order_by": [{ "type": "formula", "index": 0, "order": "desc" }]
+ },
+ "formulas": [{ "cell_display_mode": "bar", "formula": "query1" }]
+ }
+ ],
+ "has_search_bar": "auto"
+ },
+ "layout": { "x": 8, "y": 8, "width": 4, "height": 3 }
+ },
+ {
+ "id": 924997396545434,
+ "definition": {
+ "type": "note",
+ "content": "View by timestamp to identify temporal usage patterns.",
+ "background_color": "green",
+ "font_size": "14",
+ "text_align": "left",
+ "vertical_align": "center",
+ "show_tick": true,
+ "tick_pos": "50%",
+ "tick_edge": "top",
+ "has_padding": true
+ },
+ "layout": { "x": 0, "y": 11, "width": 8, "height": 1 }
+ },
+ {
+ "id": 8957740472282574,
+ "definition": {
+ "type": "note",
+ "content": "View by user who completed the Doppler action.",
+ "background_color": "green",
+ "font_size": "14",
+ "text_align": "left",
+ "vertical_align": "center",
+ "show_tick": true,
+ "tick_pos": "50%",
+ "tick_edge": "top",
+ "has_padding": true
+ },
+ "layout": { "x": 8, "y": 11, "width": 4, "height": 1 }
+ }
+ ],
+ "template_variables": [],
+ "layout_type": "ordered",
+ "notify_list": [],
+ "reflow_type": "fixed"
+}
diff --git a/doppler/assets/logs/doppler.yaml b/doppler/assets/logs/doppler.yaml
new file mode 100644
index 0000000000..fcbedc9615
--- /dev/null
+++ b/doppler/assets/logs/doppler.yaml
@@ -0,0 +1,76 @@
+id: doppler
+metric_id: doppler
+backend_only: false
+facets:
+ - groups:
+ - User
+ name: User Name
+ path: usr.name
+ source: log
+ - groups:
+ - User
+ name: User Email
+ path: usr.email
+ source: log
+ - groups:
+ - Event
+ name: Type
+ path: type
+ source: log
+pipeline:
+ type: pipeline
+ name: Doppler
+ enabled: true
+ filter:
+ query: "source:doppler"
+ processors:
+ - type: date-remapper
+ name: Define `createdAt` as the official date of the log
+ enabled: true
+ sources:
+ - createdAt
+ - type: message-remapper
+ name: Define `text` as the official message of the log
+ enabled: true
+ sources:
+ - text
+ - type: attribute-remapper
+ name: Map `user.name` to `usr.name`
+ enabled: true
+ sources:
+ - user.name
+ sourceType: attribute
+ target: usr.name
+ targetType: attribute
+ preserveSource: false
+ overrideOnConflict: false
+ - type: attribute-remapper
+ name: Map `user.email` to `usr.email`
+ enabled: true
+ sources:
+ - user.email
+ sourceType: attribute
+ target: usr.email
+ targetType: attribute
+ preserveSource: false
+ overrideOnConflict: false
+ - type: attribute-remapper
+ name: Map `user.username` to `usr.username`
+ enabled: true
+ sources:
+ - user.username
+ sourceType: attribute
+ target: usr.username
+ targetType: attribute
+ preserveSource: false
+ overrideOnConflict: false
+ - type: attribute-remapper
+ name: Map `user.profile_image_url` to `usr.profileImageUrl`
+ enabled: true
+ sources:
+ - user.profile_image_url
+ sourceType: attribute
+ target: usr.profileImageUrl
+ targetType: attribute
+ preserveSource: false
+ overrideOnConflict: false
diff --git a/doppler/assets/logs/doppler_tests.yaml b/doppler/assets/logs/doppler_tests.yaml
new file mode 100644
index 0000000000..10b0074215
--- /dev/null
+++ b/doppler/assets/logs/doppler_tests.yaml
@@ -0,0 +1,201 @@
+id: doppler
+tests:
+ - sample: >-
+ {
+ "ddsource": "doppler",
+ "createdAt": "2024-07-02T14:24:51.920Z",
+ "link": "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/logs?id=wpmULcSfO9sNxKdVUeaO0HK2",
+ "type": "services.datadog.connect",
+ "title": "Activity Log: wpmULcSfO9sNxKdVUeaO0HK2",
+ "text" : "Connected Datadog service",
+ "user": {
+ "name": "Nic Manoogian",
+ "profile_image_url": "https://www.gravatar.com/avatar/7f447a6cfe4f594f91c149b9c9ca872d?s=500&d=retro",
+ "email": "nic.manoogian@doppler.com",
+ "username": "nic"
+ },
+ "workplace": {
+ "name": "Rocketship Co",
+ "id": "30bd9e7d881446ce1bf8"
+ },
+ "slug": "wpmULcSfO9sNxKdVUeaO0HK2"
+ }
+ result:
+ custom:
+ createdAt: "2024-07-02T14:24:51.920Z"
+ ddsource: "doppler"
+ link: "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/logs?id=wpmULcSfO9sNxKdVUeaO0HK2"
+ slug: "wpmULcSfO9sNxKdVUeaO0HK2"
+ title: "Activity Log: wpmULcSfO9sNxKdVUeaO0HK2"
+ type: "services.datadog.connect"
+ usr:
+ name: "Nic Manoogian"
+ profileImageUrl: "https://www.gravatar.com/avatar/7f447a6cfe4f594f91c149b9c9ca872d?s=500&d=retro"
+ email: "nic.manoogian@doppler.com"
+ username: "nic"
+ workplace:
+ id: "30bd9e7d881446ce1bf8"
+ name: "Rocketship Co"
+ message: "Connected Datadog service"
+ tags:
+ - "source:LOGS_SOURCE"
+ timestamp: 1719930291920
+ - sample: >-
+ {
+ "ddsource": "doppler",
+ "createdAt": "2024-07-02T14:25:02.812Z",
+ "metadata": {
+ "projectUrl": "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/projects/payments",
+ "projectName": "payments",
+ "projectId": "payments"
+ },
+ "link": "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/logs?id=fOypzrlnQ6H3OMLq6RV12ZMO",
+ "type": "enclave.project.create",
+ "title": "Activity Log: fOypzrlnQ6H3OMLq6RV12ZMO",
+ "text": "Created payments project",
+ "user": {
+ "name": "Nic Manoogian",
+ "profile_image_url": "https://www.gravatar.com/avatar/7f447a6cfe4f594f91c149b9c9ca872d?s=500&d=retro",
+ "email": "nic.manoogian@doppler.com",
+ "username": "nic"
+ },
+ "workplace": {
+ "name": "Rocketship Co",
+ "id": "30bd9e7d881446ce1bf8"
+ },
+ "slug": "fOypzrlnQ6H3OMLq6RV12ZMO"
+ }
+ result:
+ custom:
+ createdAt: "2024-07-02T14:25:02.812Z"
+ ddsource: "doppler"
+ link: "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/logs?id=fOypzrlnQ6H3OMLq6RV12ZMO"
+ metadata:
+ projectId: "payments"
+ projectName: "payments"
+ projectUrl: "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/projects/payments"
+ slug: "fOypzrlnQ6H3OMLq6RV12ZMO"
+ title: "Activity Log: fOypzrlnQ6H3OMLq6RV12ZMO"
+ type: "enclave.project.create"
+ usr:
+ name: "Nic Manoogian"
+ profileImageUrl: "https://www.gravatar.com/avatar/7f447a6cfe4f594f91c149b9c9ca872d?s=500&d=retro"
+ email: "nic.manoogian@doppler.com"
+ username: "nic"
+ workplace:
+ id: "30bd9e7d881446ce1bf8"
+ name: "Rocketship Co"
+ message: 'Created payments project'
+ tags:
+ - "source:LOGS_SOURCE"
+ timestamp: 1719930302812
+ - sample: >-
+ {
+ "ddsource": "doppler",
+ "createdAt": "2024-07-02T14:25:14.172Z",
+ "metadata": {
+ "configName": "dev",
+ "configUrl": "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/projects/payments/configs/dev",
+ "projectUrl": "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/projects/payments",
+ "diffUrl": "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/projects/payments/configs/dev/logs?id=H0wdEmtL0hJtzpPjoL7d6GXx",
+ "diff": {
+ "added": [
+ "STRIPE_API_KEY"
+ ]
+ },
+ "projectName": "payments",
+ "projectId": "payments"
+ },
+ "link": "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/logs?id=Z3XK3tynBCd3u7bzBKJS6ntN",
+ "type": "enclave.project.config.secrets.update",
+ "title": "Activity Log: Z3XK3tynBCd3u7bzBKJS6ntN",
+ "text" : "Modified secrets in dev of payments project with 1 added:
• STRIPE_API_KEY",
+ "user": {
+ "name": "Nic Manoogian",
+ "profile_image_url": "https://www.gravatar.com/avatar/7f447a6cfe4f594f91c149b9c9ca872d?s=500&d=retro",
+ "email": "nic.manoogian@doppler.com",
+ "username": "nic"
+ },
+ "workplace": {
+ "name": "Rocketship Co",
+ "id": "30bd9e7d881446ce1bf8"
+ },
+ "slug": "Z3XK3tynBCd3u7bzBKJS6ntN"
+ }
+ result:
+ custom:
+ createdAt: "2024-07-02T14:25:14.172Z"
+ ddsource: "doppler"
+ link: "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/logs?id=Z3XK3tynBCd3u7bzBKJS6ntN"
+ metadata:
+ configName: "dev"
+ configUrl: "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/projects/payments/configs/dev"
+ diff:
+ added:
+ - "STRIPE_API_KEY"
+ diffUrl: "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/projects/payments/configs/dev/logs?id=H0wdEmtL0hJtzpPjoL7d6GXx"
+ projectId: "payments"
+ projectName: "payments"
+ projectUrl: "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/projects/payments"
+ slug: "Z3XK3tynBCd3u7bzBKJS6ntN"
+ title: "Activity Log: Z3XK3tynBCd3u7bzBKJS6ntN"
+ type: "enclave.project.config.secrets.update"
+ usr:
+ name: "Nic Manoogian"
+ profileImageUrl: "https://www.gravatar.com/avatar/7f447a6cfe4f594f91c149b9c9ca872d?s=500&d=retro"
+ email: "nic.manoogian@doppler.com"
+ username: "nic"
+ workplace:
+ id: "30bd9e7d881446ce1bf8"
+ name: "Rocketship Co"
+ message: 'Modified secrets in dev of payments project with 1 added:
• STRIPE_API_KEY'
+ tags:
+ - "source:LOGS_SOURCE"
+ timestamp: 1719930314172
+ - sample: >-
+ {
+ "ddsource": "doppler",
+ "createdAt": "2024-07-02T14:25:51.870Z",
+ "metadata": {
+ "oldWorkplaceRole": "collaborator",
+ "newWorkplaceRole": "admin"
+ },
+ "link": "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/logs?id=fcClWl8kGawkw9I7fm4MlCYs",
+ "type": "team.seat.update",
+ "title": "Activity Log: fcClWl8kGawkw9I7fm4MlCYs",
+ "text" : "Changed Nic Manoogian 1 access from collaborator to admin",
+ "user": {
+ "name": "Nic Manoogian",
+ "profile_image_url": "https://www.gravatar.com/avatar/7f447a6cfe4f594f91c149b9c9ca872d?s=500&d=retro",
+ "email": "nic.manoogian@doppler.com",
+ "username": "nic"
+ },
+ "workplace": {
+ "name": "Rocketship Co",
+ "id": "30bd9e7d881446ce1bf8"
+ },
+ "slug": "fcClWl8kGawkw9I7fm4MlCYs"
+ }
+ result:
+ custom:
+ createdAt: "2024-07-02T14:25:51.870Z"
+ ddsource: "doppler"
+ link: "https://dashboard.doppler.com/workplace/30bd9e7d881446ce1bf8/logs?id=fcClWl8kGawkw9I7fm4MlCYs"
+ metadata:
+ newWorkplaceRole: "admin"
+ oldWorkplaceRole: "collaborator"
+ slug: "fcClWl8kGawkw9I7fm4MlCYs"
+ title: "Activity Log: fcClWl8kGawkw9I7fm4MlCYs"
+ type: "team.seat.update"
+ usr:
+ email: "nic.manoogian@doppler.com"
+ profileImageUrl: "https://www.gravatar.com/avatar/7f447a6cfe4f594f91c149b9c9ca872d?s=500&d=retro"
+ name: "Nic Manoogian"
+ username: "nic"
+ workplace:
+ id: "30bd9e7d881446ce1bf8"
+ name: "Rocketship Co"
+ message: 'Changed Nic Manoogian 1 access from collaborator to admin'
+ tags:
+ - "source:LOGS_SOURCE"
+ timestamp: 1719930351870
diff --git a/doppler/assets/oauth_clients.json b/doppler/assets/oauth_clients.json
new file mode 100644
index 0000000000..9cd4ae2e56
--- /dev/null
+++ b/doppler/assets/oauth_clients.json
@@ -0,0 +1,13 @@
+{
+ "integration": {
+ "scopes": ["api_keys_write"],
+ "client_role": "integration",
+ "name": "Doppler API",
+ "onboarding_url": "https://dashboard.doppler.com/notification_services/datadog/connect",
+ "description": "Doppler API Client",
+ "redirect_uris": [
+ "https://dashboard.doppler.com/notification_services/datadog/callback"
+ ],
+ "id": "87fdb7f6-542c-11ef-abb5-da7ad0900002"
+ }
+}
diff --git a/doppler/assets/service_checks.json b/doppler/assets/service_checks.json
new file mode 100644
index 0000000000..fe51488c70
--- /dev/null
+++ b/doppler/assets/service_checks.json
@@ -0,0 +1 @@
+[]
diff --git a/doppler/images/dashboard.png b/doppler/images/dashboard.png
new file mode 100644
index 0000000000..28ac2d16cd
Binary files /dev/null and b/doppler/images/dashboard.png differ
diff --git a/doppler/images/doppler-logo.svg b/doppler/images/doppler-logo.svg
new file mode 100644
index 0000000000..7ff476f73f
--- /dev/null
+++ b/doppler/images/doppler-logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/doppler/images/example-log.png b/doppler/images/example-log.png
new file mode 100644
index 0000000000..dbed9836c2
Binary files /dev/null and b/doppler/images/example-log.png differ
diff --git a/doppler/images/generate.png b/doppler/images/generate.png
new file mode 100644
index 0000000000..01630bed9b
Binary files /dev/null and b/doppler/images/generate.png differ
diff --git a/doppler/images/personal-config.png b/doppler/images/personal-config.png
new file mode 100644
index 0000000000..2a270f5b8e
Binary files /dev/null and b/doppler/images/personal-config.png differ
diff --git a/doppler/images/projects.png b/doppler/images/projects.png
new file mode 100644
index 0000000000..7dee99242d
Binary files /dev/null and b/doppler/images/projects.png differ
diff --git a/doppler/images/rotation.png b/doppler/images/rotation.png
new file mode 100644
index 0000000000..c0342bb405
Binary files /dev/null and b/doppler/images/rotation.png differ
diff --git a/doppler/images/secret-visibility.png b/doppler/images/secret-visibility.png
new file mode 100644
index 0000000000..e86c6a169a
Binary files /dev/null and b/doppler/images/secret-visibility.png differ
diff --git a/doppler/images/version-history.png b/doppler/images/version-history.png
new file mode 100644
index 0000000000..d19d736228
Binary files /dev/null and b/doppler/images/version-history.png differ
diff --git a/doppler/manifest.json b/doppler/manifest.json
new file mode 100644
index 0000000000..e13a04a09f
--- /dev/null
+++ b/doppler/manifest.json
@@ -0,0 +1,88 @@
+{
+ "manifest_version": "2.0.0",
+ "app_uuid": "e22c8861-f652-42a9-9582-6470504b421f",
+ "app_id": "doppler",
+ "display_on_public_website": true,
+ "tile": {
+ "overview": "README.md#Overview",
+ "configuration": "README.md#Setup",
+ "support": "README.md#Support",
+ "uninstallation": "README.md#Uninstallation",
+ "changelog": "CHANGELOG.md",
+ "description": "Doppler Secrets Management",
+ "title": "Doppler",
+ "media": [
+ {
+ "media_type": "image",
+ "caption": "Organize secrets into projects",
+ "image_url": "images/projects.png"
+ },
+ {
+ "media_type": "image",
+ "caption": "Configure secret visibility to prevent accidental access",
+ "image_url": "images/secret-visibility.png"
+ },
+ {
+ "media_type": "image",
+ "caption": "Provide existing secrets or generate cryptographically random values",
+ "image_url": "images/generate.png"
+ },
+ {
+ "media_type": "image",
+ "caption": "Set up automatic rotation",
+ "image_url": "images/rotation.png"
+ },
+ {
+ "media_type": "image",
+ "caption": "Allow individual developers to override values in personal configs",
+ "image_url": "images/personal-config.png"
+ },
+ {
+ "media_type": "image",
+ "caption": "Track all secret reads and writes",
+ "image_url": "images/version-history.png"
+ },
+ {
+ "media_type": "image",
+ "caption": "Analyze activity patterns",
+ "image_url": "images/dashboard.png"
+ }
+ ],
+ "classifier_tags": [
+ "Supported OS::Linux",
+ "Supported OS::Windows",
+ "Supported OS::macOS",
+ "Category::Security",
+ "Category::Developer Tools",
+ "Category::Log Collection",
+ "Offering::Integration",
+ "Submitted Data Type::Logs"
+ ]
+ },
+ "assets": {
+ "integration": {
+ "auto_install": true,
+ "source_type_id": 25660413,
+ "source_type_name": "doppler",
+ "configuration": {
+ "spec": "assets/configuration/spec.yaml"
+ },
+ "events": {
+ "creates_events": false
+ },
+ "service_checks": {
+ "metadata_path": "assets/service_checks.json"
+ }
+ },
+ "dashboards": {
+ "Doppler": "assets/dashboards/doppler_overview.json"
+ },
+ "oauth": "assets/oauth_clients.json"
+ },
+ "author": {
+ "support_email": "support@doppler.com",
+ "name": "Doppler",
+ "homepage": "https://doppler.com",
+ "sales_email": "sales@doppler.com"
+ }
+}