<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Open Secrets Language (OSL) on Open Secrets Language</title><link>https://www.decodering.org/</link><description>Recent content in Open Secrets Language (OSL) on Open Secrets Language</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 24 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.decodering.org/index.xml" rel="self" type="application/rss+xml"/><item><title>OSL API Specification</title><link>https://www.decodering.org/docs/osl-api-specification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.decodering.org/docs/osl-api-specification/</guid><description>&lt;h1 id="open-secrets-language-osl--abstraction-api-v100"&gt;Open Secrets Language (OSL) — Abstraction API v1.0.0&lt;/h1&gt;
&lt;h2 id="1-goals"&gt;1) Goals&lt;/h2&gt;
&lt;p&gt;This version defines OSL as a provider-agnostic abstraction that can map cleanly onto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HashiCorp Vault&lt;/li&gt;
&lt;li&gt;OpenBao&lt;/li&gt;
&lt;li&gt;HCP Vault&lt;/li&gt;
&lt;li&gt;AWS Secrets Manager&lt;/li&gt;
&lt;li&gt;Azure Key Vault&lt;/li&gt;
&lt;li&gt;Google Cloud Secret Manager&lt;/li&gt;
&lt;li&gt;CyberArk Conjur&lt;/li&gt;
&lt;li&gt;Kubernetes External Secrets Operator&lt;/li&gt;
&lt;li&gt;Doppler&lt;/li&gt;
&lt;li&gt;Delinea Secret Server&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-abstraction-strategy"&gt;Key abstraction strategy&lt;/h3&gt;
&lt;p&gt;Different providers support different features (e.g., versioning, dynamic credentials, sync/injection). This API:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Defines a &lt;strong&gt;small required core&lt;/strong&gt; that all backends can implement.&lt;/li&gt;
&lt;li&gt;Adds optional modules (leases, rotation, sync) that are &lt;strong&gt;capability-gated&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Makes &lt;strong&gt;capability discovery&lt;/strong&gt; mandatory so clients never guess.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="2-versioning-and-naming"&gt;2) Versioning and naming&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Major version in the URL path&lt;/strong&gt;: &lt;code&gt;/osl/v1/...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spec version returned in responses&lt;/strong&gt;: &lt;code&gt;&amp;quot;osl_version&amp;quot;: &amp;quot;1.0.0&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kebab-case&lt;/strong&gt; for endpoint paths.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Snake-case&lt;/strong&gt; for JSON fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-authentication"&gt;3) Authentication&lt;/h2&gt;
&lt;p&gt;Clients MUST send a bearer token on every request:&lt;/p&gt;</description></item><item><title>Identity Agent</title><link>https://www.decodering.org/docs/identity-agent/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.decodering.org/docs/identity-agent/</guid><description>&lt;h2 id="name"&gt;NAME&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Identity Agent&lt;/code&gt; -&lt;/p&gt;
&lt;h2 id="description"&gt;DESCRIPTION&lt;/h2&gt;
&lt;p&gt;A service responsible for validating application identity using certificates installed into virtual or hardware based TPM 2.0 modules.&lt;/p&gt;
&lt;h2 id="see-also"&gt;SEE ALSO&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dcdr(1)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dcdr-server(8)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>decodeRing CLI</title><link>https://www.decodering.org/docs/decodering-cli/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.decodering.org/docs/decodering-cli/</guid><description>&lt;h2 id="name"&gt;NAME&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;dcdr&lt;/code&gt; - command-line client for decodeRing secret lifecycle operations.&lt;/p&gt;
&lt;h2 id="synopsis"&gt;SYNOPSIS&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dcdr &lt;span style="color:#f92672"&gt;[&lt;/span&gt;global options&lt;span style="color:#f92672"&gt;]&lt;/span&gt; command &lt;span style="color:#f92672"&gt;[&lt;/span&gt;command options&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt;arguments&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="description"&gt;DESCRIPTION&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;dcdr&lt;/code&gt; is the command-line interface for interacting with a decodeRing server. It supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;application registration and user management&lt;/li&gt;
&lt;li&gt;secret create/read/taint/destroy workflows&lt;/li&gt;
&lt;li&gt;backend visibility and audit log export&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After successful authentication with &lt;code&gt;dcdr auth&lt;/code&gt;, the token is cached at &lt;code&gt;~/.dcdr/token&lt;/code&gt; and reused automatically.&lt;/p&gt;
&lt;h2 id="global-options"&gt;GLOBAL OPTIONS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--addr&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Address of the decodeRing server.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--token&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Authentication token to use for this command.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--skip-verify&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Skip SSL certificate verification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="environment"&gt;ENVIRONMENT&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;DCDR_TOKEN&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Authentication token used when &lt;code&gt;--token&lt;/code&gt; is not supplied.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;DCDR_SKIP_VERIFY&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
If set to &lt;code&gt;&amp;quot;true&amp;quot;&lt;/code&gt;, bypasses SSL certificate verification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="see-also"&gt;SEE ALSO&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dcdr-server(8)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>decodeRing Core</title><link>https://www.decodering.org/docs/decodering-core/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.decodering.org/docs/decodering-core/</guid><description>&lt;h2 id="name"&gt;NAME&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;dcdr-core-server&lt;/code&gt; - server process for managing secrets through a unified backend abstraction.&lt;/p&gt;
&lt;h2 id="synopsis"&gt;SYNOPSIS&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dcdr-server &lt;span style="color:#f92672"&gt;[&lt;/span&gt;options&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dcdr-server generate-ssl &lt;span style="color:#f92672"&gt;[&lt;/span&gt;--out &amp;lt;path&amp;gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="description"&gt;DESCRIPTION&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;dcdr-server&lt;/code&gt; provides the decodeRing Core runtime and API service for managing secrets across multiple backend providers.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On first startup, the server generates encryption key shards and a root authentication token. Key shards are persisted in the &lt;code&gt;key_shards&lt;/code&gt; database table, and both shards and the initial root token are printed to standard output. The root token is then used to authenticate as the &lt;code&gt;root&lt;/code&gt; user. The key shards are used to assemble the unlock encryption key that unlocks the server (allowing it to accept requests) as well as encrypt sensitive data.&lt;/p&gt;</description></item><item><title>Capability Discovery Best Practices</title><link>https://www.decodering.org/blog/capability-discovery-best-practices/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://www.decodering.org/blog/capability-discovery-best-practices/</guid><description>&lt;p&gt;Capability discovery is mandatory in OSL and should be handled first in every client lifecycle.&lt;/p&gt;
&lt;h2 id="template-outline"&gt;Template outline&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Startup capability cache strategy&lt;/li&gt;
&lt;li&gt;Handling &lt;code&gt;feature-not-supported&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Backend-aware request routing&lt;/li&gt;
&lt;li&gt;Observability fields for unsupported feature calls&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Introducing OSL v1.0.0</title><link>https://www.decodering.org/blog/introducing-osl-v1.0.0/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid>https://www.decodering.org/blog/introducing-osl-v1.0.0/</guid><description>&lt;p&gt;OSL v1.0.0 introduces a stable abstraction API for secrets and workflow modules across multiple backend types.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.decodering.org/images/blog/pager.png" alt="Pager illustration symbolizing OSL v1.0.0 operational readiness and alerting workflows"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Concept art used in OSL v1.0.0 release notes to represent operator paging and incident-response readiness.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="what-this-template-can-include"&gt;What this template can include&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Release highlights&lt;/li&gt;
&lt;li&gt;Compatibility matrix&lt;/li&gt;
&lt;li&gt;Upgrade notes from previous API drafts&lt;/li&gt;
&lt;li&gt;Breaking and non-breaking changes&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Our Open Source alpha release has dropped</title><link>https://www.decodering.org/blog/our-open-source-alpha-release-has-dropped/</link><pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.decodering.org/blog/our-open-source-alpha-release-has-dropped/</guid><description>&lt;p&gt;We are happy and proud to announce the initial Open Source launch of what we’ve been working on for the past several months. You can grab the bits and start using it over at GitHub:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open Secrets Language – An open standard for how to “talk” about secrets.&lt;/li&gt;
&lt;li&gt;Core Server – The OSS RESTful implementation of the OSL standard.&lt;/li&gt;
&lt;li&gt;Go SDK – An easy to use GoLang SDK for interacting with the decodeRing server.&lt;/li&gt;
&lt;li&gt;Python SDK – An easy to use Python SDK for interacting with the decodeRing server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Feedback and contributions are welcome&lt;/strong&gt; 🤝
We are truly excited and looking forward to building a vibrant community around the Open Secrets Language (OSL) and decodeRing Core. Feedback, feature requests and contributions mean the world to us.&lt;/p&gt;</description></item></channel></rss>