<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Devops Kiponos</title>
    <description>The latest articles on Forem by Devops Kiponos (@kiponos).</description>
    <link>https://forem.com/kiponos</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2975663%2F21598326-fba9-412a-9291-a354d2c9d4e9.png</url>
      <title>Forem: Devops Kiponos</title>
      <link>https://forem.com/kiponos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kiponos"/>
    <language>en</language>
    <item>
      <title>Skip tests while build running?</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Thu, 12 Feb 2026 18:23:57 +0000</pubDate>
      <link>https://forem.com/kiponos/skip-tests-while-build-running-10j4</link>
      <guid>https://forem.com/kiponos/skip-tests-while-build-running-10j4</guid>
      <description>&lt;h2&gt;
  
  
  That's easy with the right SDK!
&lt;/h2&gt;

&lt;p&gt;There is a free service allowing you exactly that!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your build is running.&lt;/li&gt;
&lt;li&gt;You enter your account online and change a value.&lt;/li&gt;
&lt;li&gt;The SDK in your tests instantly detect the change at runtime.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;That's it.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The SDK has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;get(fieldName)&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Any time you get, it's always the latest value you have online in your dashboard!&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;code&gt;onValueChanged( changeInfo ) { ...your code to handle change... changeInfo.getFieldName(), changeInfo.getValue(), etc... }&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When you change a value online, your code can react instantly, in true real-time to the change! the SDK is notified instantly using internal, highly secured websocket connection.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Latency is ZERO! and here is why:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kiponos server dispatch delta-changes only directly to your SDK.&lt;/li&gt;
&lt;li&gt;The SDK always have the latest values in-memory, locally in your code.&lt;/li&gt;
&lt;li&gt;Accessing your data via the SDK is exactly the same as accessing any local variable in your code!&lt;/li&gt;
&lt;li&gt;Only the delta-change dispatch will cost between 1ms to 3ms.  After that, the SDK has the latest value locally so your code runs on latest values - from the update point on - with true zero latency!&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to install and use the SDK
&lt;/h2&gt;

&lt;h3&gt;
  
  
  (free forever account)
&lt;/h3&gt;




&lt;h3&gt;
  
  
  Get the SDK Keys for your envs here: &lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;kiponos.io&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Copy these tokens generated for you in your account (in "Connect Your App") and set them in your env:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export KIPONOS_ID="your-kiponos-id"
export KIPONOS_ACCESS="your-kiponos-access"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;For Python SDK:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To install the Kiponos Python SDK, run the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;kiponos-pysdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Python 3.12 or higher).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usage&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;kiponos_pysdk&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;KiponosClient&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;KiponosClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kiponos&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;my-app&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;1.0.0&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;dev&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;base&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Get a config value
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;timeout&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;not found&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# e.g., "100"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;For Java SDK&lt;/strong&gt; (fully compatible with SpringBoot):
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Simply include the SDK in your Gradle build file:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight groovy"&gt;&lt;code&gt;&lt;span class="n"&gt;dependencies&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;implementation&lt;/span&gt; &lt;span class="s1"&gt;'io.kiponos:sdk-boot-3:4.4.0.250319'&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or Maven:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;io.kiponos&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;sdk-boot-3&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;4.4.0.250319&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Usage:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io.kiponos.Kiponos&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Example&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;Kiponos&lt;/span&gt; &lt;span class="n"&gt;cfg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Kiponos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;createForCurrentTeam&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

        &lt;span class="c1"&gt;// Example of using the SDK.&lt;/span&gt;
        &lt;span class="c1"&gt;// get always return the latest value you have online.&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;paymentsHealthUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cfg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Health-Checks"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"PaymentService"&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"health-url"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Payments Health URL: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;paymentsHealthUrl&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="c1"&gt;// Optional - if you also want to run some &lt;/span&gt;
        &lt;span class="c1"&gt;// code anytime a specific field is changed: &lt;/span&gt;
        &lt;span class="n"&gt;cfg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;afterValueUpdated&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;valUpdated&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// Handle the updated value&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"health-api"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;valUpdated&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getKey&lt;/span&gt;&lt;span class="o"&gt;()))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="c1"&gt;// Code instantly runs when the value updated.&lt;/span&gt;
            &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="o"&gt;});&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  For CICD Tests
&lt;/h2&gt;

&lt;p&gt;Exactly the same in tests context as in main:&lt;/p&gt;

&lt;h4&gt;
  
  
  Just define your config key that control your tests
&lt;/h4&gt;

&lt;p&gt;E.g: Define &lt;code&gt;enable-tests&lt;/code&gt; directly in the root config folder.&lt;/p&gt;

&lt;p&gt;In your test, use JUnit Assumptions to powerfully integrate with Kiponos SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="nn"&gt;io.kiponos&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io.kiponos.sdk.Kiponos&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io.kiponos.sdk.configs.Folder&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.assertj.core.api.Assumptions&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.junit.jupiter.api.Test&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ExploreConditionalTest&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="nc"&gt;Folder&lt;/span&gt; &lt;span class="n"&gt;cfg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Kiponos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;createForCurrentTeam&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;getRootFolder&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

    &lt;span class="nd"&gt;@Test&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;testAssumptions&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;Assumptions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;assumeThat&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cfg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getBoolean&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"tests-enabled"&lt;/span&gt;&lt;span class="o"&gt;)).&lt;/span&gt;&lt;span class="na"&gt;isTrue&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Done"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Magic: while your CICD runs, whenever you change the "enable-tests" value online, the running tests will be skipped &lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages and features of the Kiponos.io real-time service:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Role based access &lt;strong&gt;per team&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Manage runtime environments independently! &lt;/li&gt;
&lt;li&gt;Same code, run on any env with matching SDK Key.&lt;/li&gt;
&lt;li&gt;Forget about config files! totally! 

&lt;ul&gt;
&lt;li&gt;SDK detects your env var and Kiponos serves the correct config.&lt;/li&gt;
&lt;li&gt;You run local dev, staging, tests, production without a single config file! &lt;/li&gt;
&lt;li&gt;No more yamls, no more properties. Just code :) &lt;/li&gt;
&lt;li&gt;Mostly: You control and modify all envs independently.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Envs Hierarchy: change parent env value, and all child envs react instantly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For example, you have Staging as base config with max-queue-size = 500, Local Dev extends it having all that is defined in staging but overrides: max-queue-size = 12. Production overrides with 20000. &lt;/li&gt;
&lt;li&gt;More interesting - Non Dev teams can easily use the system. For example: Sales can define price plans in real-time and change rules without even restarting the servers! Marketing can change a logo URL or brand name - which will instantly affect all environments - dev,staging,production,cicd - all of them in real-time without even a refresh! because all is instantly dispatched and handled.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;And that magic is totally free! &lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Enjoy the config revolution!
&lt;/h2&gt;

&lt;p&gt;Signup at: &lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;Kiponos.io Signup&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cicd</category>
      <category>java</category>
      <category>python</category>
      <category>devops</category>
    </item>
    <item>
      <title>Kiponos.io Becomes Real-Time Hub</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Mon, 19 Jan 2026 17:55:22 +0000</pubDate>
      <link>https://forem.com/kiponos/kiponosio-becomes-real-time-hub-447p</link>
      <guid>https://forem.com/kiponos/kiponosio-becomes-real-time-hub-447p</guid>
      <description>&lt;p&gt;&lt;strong&gt;Simple:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Any server gets Kiponos SDK. &lt;/li&gt;
&lt;li&gt;SDK has get("key") and set(key, val);&lt;/li&gt;
&lt;li&gt;Updates are dispatched using websockets instantly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;State is observable in real-time in Kiponos.io account.&lt;/p&gt;

&lt;p&gt;Latest data is instantly updated as well on the web dashboard!&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;Create Free Account Here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>eventdriven</category>
      <category>pubsub</category>
      <category>kubernetes</category>
      <category>java</category>
    </item>
    <item>
      <title>Watch Kiponos Config AI Insights Recommend Items</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Sun, 16 Nov 2025 16:00:13 +0000</pubDate>
      <link>https://forem.com/kiponos/watch-kiponos-config-ai-insights-recommend-items-3gbi</link>
      <guid>https://forem.com/kiponos/watch-kiponos-config-ai-insights-recommend-items-3gbi</guid>
      <description>&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/2M1n-o5EC8Y"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;Clicking the "AI Insight" button suggests config items tailored to your config node you currently work on. &lt;/p&gt;

&lt;p&gt;In addition to the suggested config items, Kiponos suggests general insights relevant to your personal config context.&lt;/p&gt;

&lt;p&gt;In the demo video, we see how the user creates the new "PostgreSql" config folder under "Database" and Kiponos AI suggests appropriate Postgres DB params plus general DB relevant insights.&lt;/p&gt;

&lt;p&gt;Kiponos is a real-time config service, providing both Java and Python SDK based internally on permanent websocket connection with the server so your application works locally on the latest config data with zero latency.  &lt;/p&gt;

&lt;p&gt;With delta-update only and instant dispatch, you can modify any config item in real-time with no need to redeploy or restart your app.  Everything is instantly updated while your app or server keeps running.&lt;/p&gt;

&lt;p&gt;Grab your free account and SDK:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;Kiponos.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mvnrepository.com/artifact/io.kiponos/sdk-boot-3" rel="noopener noreferrer"&gt;Java SDK (fully compatible with SpringBoot)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gradle: &lt;code&gt;implementation("io.kiponos:sdk-boot-3:4.4.0.250319")&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Python SDK:
&lt;code&gt;pip install kiponos-pysdk&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>springboot</category>
      <category>devops</category>
    </item>
    <item>
      <title>Disruptive: Kiponos AI Sidekick for App Configs</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Mon, 10 Nov 2025 02:01:47 +0000</pubDate>
      <link>https://forem.com/kiponos/disruptive-kiponos-ai-sidekick-for-app-configs-39eb</link>
      <guid>https://forem.com/kiponos/disruptive-kiponos-ai-sidekick-for-app-configs-39eb</guid>
      <description>&lt;h2&gt;
  
  
  Kiponos.io just published its new AI powers for all users!
&lt;/h2&gt;

&lt;p&gt;Kiponos dashboard now analyze your config tree and suggest improvements.&lt;/p&gt;

&lt;p&gt;Intelligently offering relevant new config items and optimized values right in the UI!&lt;/p&gt;

&lt;p&gt;Just click the "Accept" button and boom! Your improved config is already available in real-time in your SDK.&lt;/p&gt;

&lt;p&gt;Level up your stack today. &lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;Grab free access @ kiponos.io&lt;/a&gt; and let the Assistant work its magic. &lt;/p&gt;

&lt;p&gt;Real-time, collab, centralized config combined with customized AI to your config tree brings unmatched config management.&lt;/p&gt;

&lt;p&gt;First win? Spill in replies!&lt;/p&gt;

</description>
      <category>tooling</category>
      <category>config</category>
      <category>cloud</category>
      <category>appconfig</category>
    </item>
    <item>
      <title>Ditch the Config Chaos: Meet Kiponos - the Real-Time Config Revolution You've Been Waiting For</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Wed, 05 Nov 2025 20:57:20 +0000</pubDate>
      <link>https://forem.com/kiponos/ditch-the-config-chaos-meet-kiponos-the-real-time-config-revolution-youve-been-waiting-for-4ac7</link>
      <guid>https://forem.com/kiponos/ditch-the-config-chaos-meet-kiponos-the-real-time-config-revolution-youve-been-waiting-for-4ac7</guid>
      <description>&lt;p&gt;Picture this: It's 3 AM, your app's in flames because someone fat-fingered an env var in prod. Or worse—that "quick" config tweak forces a full redeploy, downtime ticking like a bomb. Sound familiar? We've all been there, wrestling with YAML nightmares, secret managers, and endless "it works on my machine" debates. Config management feels like herding cats... in the dark.&lt;/p&gt;

&lt;p&gt;But what if I told you there's a better way? One that turns config into a &lt;em&gt;living&lt;/em&gt; thing—shared, collaborative, and &lt;em&gt;instant&lt;/em&gt;. Enter &lt;strong&gt;Kiponos.io&lt;/strong&gt;: the ultimate config platform that's not just managing your settings; it's &lt;em&gt;democratizing&lt;/em&gt; them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Aha Moment: Config That Breathes
&lt;/h2&gt;

&lt;p&gt;With Kiponos, you forget env vars even exist. Instead, imagine this dead-simple line in your code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Java SDK (Spring Boot 2.x/3.x ready)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kiponosSdk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"my-app"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"debug"&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;getBoolean&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"is-enabled"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Boom—debug mode flips on/off *live*, no restart needed&lt;/span&gt;
    &lt;span class="n"&gt;logThatVerboseDebugInfo&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Python SDK—same vibe
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;kiponos_sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-app&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;debug&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;get_boolean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;is-enabled&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Instant update from the web admin? It's already here.
&lt;/span&gt;    &lt;span class="nf"&gt;enable_debug_mode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's the magic: Behind the scenes, your SDK stays glued to the Kiponos web app via a persistent WebSocket. Tweak a boolean (or any value) in the online dashboard—&lt;em&gt;poof&lt;/em&gt;. Delta updates zip across in milliseconds. No full syncs, no latency lag. Your app (and every teammate's) just... knows.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Power Unleashed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Env Mastery&lt;/strong&gt;: Dev, Staging, Prod? Each gets its profile, with overrides that cascade like a boss.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team Superpowers&lt;/strong&gt;: RBAC locks down who touches what. Lock an item? It's frozen till unlocked. Everyone sees changes &lt;em&gt;as they happen&lt;/em&gt;—real-time collab without Slack ping-pong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Downtime Dreams&lt;/strong&gt;: Toggle A/B tests, feature flags, or even API endpoints live. No restarts, no deploys. Just pure, seamless evolution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't incremental—it's a &lt;em&gt;paradigm shift&lt;/em&gt;. Config becomes state control: Remote, collaborative, with virtually zero latency. DevOps? Streamlined. Developers? Liberated. Architects? Ecstatic (finally, a system that scales with human teams).&lt;/p&gt;

&lt;p&gt;Kiponos isn't hype; it's the config nervous system your apps deserve. SDKs for Java (Spring Boot natives) and Python mean you're productive Day Zero.&lt;/p&gt;

&lt;p&gt;Ready for your Aha? Head to &lt;a href="https://kiponos.io" rel="noopener noreferrer"&gt;kiponos.io&lt;/a&gt; and spin up a free account. Drop a config tree, flip a switch, and feel the future.&lt;/p&gt;

&lt;p&gt;What's one config headache you'd nuke first? Reply below—let's geek out. 👇&lt;/p&gt;

</description>
      <category>devops</category>
      <category>tooling</category>
      <category>ai</category>
      <category>python</category>
    </item>
    <item>
      <title>Announcing Kiponos Python SDK v0.1.2: Real-Time Config as a Service for Python Developers</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Wed, 22 Oct 2025 21:16:50 +0000</pubDate>
      <link>https://forem.com/kiponos/announcing-kiponos-python-sdk-v012-real-time-config-as-a-service-for-python-developers-2nd8</link>
      <guid>https://forem.com/kiponos/announcing-kiponos-python-sdk-v012-real-time-config-as-a-service-for-python-developers-2nd8</guid>
      <description>&lt;p&gt;Hey Dev.to community!&lt;/p&gt;

&lt;p&gt;I'm excited to announce the release of the Kiponos Python SDK v0.1.2 on PyPI! Kiponos is a real-time configuration-as-a-service platform that lets you manage configs dynamically via simple SDK. Internally built on WebSockets and STOMP, Kiponos provides instant updates across environments in zero latency!. &lt;/p&gt;

&lt;p&gt;It's perfect for AI apps, DevOps workflows, or any Python project needing zero-latency config changes without redeploys. without restarts. without even a refresh! Anything you modify online instantly affects your algorithm or any python app! simple as that!&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Sync&lt;/strong&gt;: Fetch the initial config tree and subscribe to delta updates (key created/updated) for instant reflection in your app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Access&lt;/strong&gt;: Configs stored in memory for fast lookups (e.g., &lt;code&gt;client.get("learning-rate")&lt;/code&gt; or &lt;code&gt;client.get("timeout")&lt;/code&gt; etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure &amp;amp; Isolated&lt;/strong&gt;: Uses env vars for auth (&lt;code&gt;KIPONOS_ID&lt;/code&gt;, &lt;code&gt;KIPONOS_ACCESS&lt;/code&gt;) and supports profile paths for environment-specific configs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple Integration&lt;/strong&gt;: Connect, fetch, and query with minimal code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Code Modifications. No Config Files&lt;/strong&gt;: Kiponos frees you from handling any config files or any static data, while your code is written only once - for all environments! all configs in any environment (dev, tests, staging, qa, production) are accessed seamlessly and managed by Kiponos.io in real-time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;Get started with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;kiponos-pysdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Requires Python 3.12+.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Usage Example
&lt;/h3&gt;

&lt;p&gt;Set up your env vars (from your Kiponos account):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;KIPONOS_ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-id"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;KIPONOS_ACCESS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-access"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;kiponos_pysdk&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;KiponosClient&lt;/span&gt;

&lt;span class="c1"&gt;# work on specific config profile
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;KiponosClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kiponos&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;my-app&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;1.0.0&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;dev&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;base&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Get a config value
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;timeout&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;not found&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# e.g., "100"
&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For an interactive demo, check the repo for &lt;code&gt;usage_example.py&lt;/code&gt;—it supports commands like &lt;code&gt;get &amp;lt;key&amp;gt;&lt;/code&gt;, &lt;code&gt;list-keys&lt;/code&gt;, &lt;code&gt;dump&lt;/code&gt;, and &lt;code&gt;exit&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Kiponos?
&lt;/h3&gt;

&lt;p&gt;Built over 3 years of development, Kiponos decouples config from code, making your apps environment-agnostic. Free plans available—sign up at &lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;kiponos.io&lt;/a&gt; to get your tokens.&lt;/p&gt;

&lt;p&gt;Feedback welcome! Source on GitHub: &lt;a href="https://github.com/Avdiel/kiponos-py-sdk" rel="noopener noreferrer"&gt;github.com/Avdiel/kiponos-py-sdk&lt;/a&gt; (soon public).&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage Example - accessing real-time configs
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;kiponos_pysdk.client&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;KiponosClient&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# Expected env vars: KIPONOS_ID and KIPONOS_ACCESS
&lt;/span&gt;    &lt;span class="n"&gt;env_profile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;my-app&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;1.0.0&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;dev&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;base&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="n"&gt;kiponos_sdk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;KiponosClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kiponos&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;env_profile&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;kiponos_sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s"&gt;Welcome to the Kiponos interactive example!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Team Id: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kiponos_sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;team_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-------------------------------------------&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Commands:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;---------&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; get &amp;lt;key_name&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; list&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; dump&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; exit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; help&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;user_input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;gt; &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;parts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;user_input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;maxsplit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;parts&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;exit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Stopping...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;break&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;key_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;kiponos_sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Not Found&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;key_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; = &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;list&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;keys&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kiponos_sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config_tree&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;keys&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;--- No Keys ---&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;dump&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Config Tree:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kiponos_sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config_tree&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;indent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Unknown command: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;kiponos_sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>ai</category>
      <category>aiops</category>
      <category>eventdriven</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Thu, 16 Oct 2025 20:51:30 +0000</pubDate>
      <link>https://forem.com/kiponos/-nnp</link>
      <guid>https://forem.com/kiponos/-nnp</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/kiponos" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2975663%2F21598326-fba9-412a-9291-a354d2c9d4e9.png" alt="kiponos"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/kiponos/how-kiponosio-ends-config-chaos-in-cicd-48l4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How Kiponos.io Ends Config Chaos in CI/CD&lt;/h2&gt;
      &lt;h3&gt;Devops Kiponos ・ Sep 10&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#springboot&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#firebase&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#kubernetes&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>springboot</category>
      <category>devops</category>
      <category>firebase</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Would you like Kiponos to have a Python SDK?</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Wed, 15 Oct 2025 19:33:23 +0000</pubDate>
      <link>https://forem.com/kiponos/would-you-like-kiponos-to-have-a-python-sdk-1k30</link>
      <guid>https://forem.com/kiponos/would-you-like-kiponos-to-have-a-python-sdk-1k30</guid>
      <description>&lt;p&gt;&lt;a href="https://kiponos.io/land4" rel="noopener noreferrer"&gt;Kiponos&lt;/a&gt; is the ultimate config solution - live config, in real-time, instantly affecting your app/algorithm on any modification you do online in your dashboard!&lt;/p&gt;

&lt;p&gt;Kiponos supports Java SDK with full compatibility to SpringBoot.&lt;/p&gt;

&lt;p&gt;Same way we revolutionized Java config management, we want to help Python developers and AI-Ops enjoy that config revolution and we think it will be extremely helpful to allow you guys to modify your AI algorithm params in real-time without restarting your algorithms or training processes.  &lt;/p&gt;

&lt;p&gt;For example, your training can continue to run while you adjust your parameters in real-time. live!&lt;/p&gt;

&lt;p&gt;So, in order to be sure about the demand for a Python SDK, which we will publish fully for free as part of our free plan to all team sizes, please let us know:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Would you like a Kiponos Python SDK?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Any special request or suggestion for AI devs?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thank you,&lt;br&gt;
Moshe Avdiel,&lt;br&gt;
&lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;Kiponos.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>aiops</category>
      <category>tooling</category>
    </item>
    <item>
      <title>How Kiponos.io Ends Config Chaos in CI/CD</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Wed, 10 Sep 2025 10:13:52 +0000</pubDate>
      <link>https://forem.com/kiponos/how-kiponosio-ends-config-chaos-in-cicd-48l4</link>
      <guid>https://forem.com/kiponos/how-kiponosio-ends-config-chaos-in-cicd-48l4</guid>
      <description>&lt;p&gt;If you’ve ever built a &lt;strong&gt;Spring Boot app&lt;/strong&gt; with &lt;strong&gt;application.properties&lt;/strong&gt;, &lt;code&gt;application-test.yml&lt;/code&gt;, &lt;code&gt;application-prod.yml&lt;/code&gt;, environment variables tucked inside Docker containers, and &lt;strong&gt;CI/CD pipeline configs (Jenkins, GitHub Actions, GitLab, etc.)&lt;/strong&gt;—you know the pain.&lt;/p&gt;

&lt;p&gt;Every change to your pipeline usually means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Updating some config file in your repo.&lt;/li&gt;
&lt;li&gt;Injecting secrets or variables in Jenkins manually.&lt;/li&gt;
&lt;li&gt;Redeploying to test if the “new” pipeline setting works.&lt;/li&gt;
&lt;li&gt;Debugging &lt;em&gt;why&lt;/em&gt; your staging branch builds differently than main.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s fragile. It’s messy. And it slows you down.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Config Sprawl
&lt;/h2&gt;

&lt;p&gt;In most Spring Boot projects today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;App configs&lt;/strong&gt; → &lt;code&gt;application.properties&lt;/code&gt;, profiles, environment variables.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CI/CD configs&lt;/strong&gt; → pipeline YAML, Jenkins custom vars, Docker env overrides.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test configs&lt;/strong&gt; → special config files baked into branches or pipelines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That means developers and DevOps must keep dozens of moving pieces in sync across environments. One wrong key, one stale config file, and your “green build” turns into a late-night rollback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter Kiponos.io
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://kiponos.io" rel="noopener noreferrer"&gt;Kiponos.io&lt;/a&gt; was built to &lt;strong&gt;end config chaos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of spreading config across files, YAMLs, and pipeline secrets, you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Java SDK&lt;/strong&gt; you drop into your Spring Boot app.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;real-time web console&lt;/strong&gt; (like a futuristic control panel) where you define and change config.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant updates&lt;/strong&gt;—your app and your pipeline pick up changes over WebSockets in real-time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No redeploys. No restarts. No “switch branch and test config file.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Example: Killing Test Config Files
&lt;/h2&gt;

&lt;p&gt;Normally you’d do something like this in your Jenkins pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight groovy"&gt;&lt;code&gt;&lt;span class="n"&gt;pipeline&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;environment&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;SPRING_PROFILES_ACTIVE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"test"&lt;/span&gt;
    &lt;span class="n"&gt;CUSTOM_FLAG&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"false"&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;stages&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Build'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;steps&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;sh&lt;/span&gt; &lt;span class="s1"&gt;'./gradlew build'&lt;/span&gt;
      &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then in your Spring Boot app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;spring&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;profiles&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;test&lt;/span&gt;

&lt;span class="na"&gt;custom&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;flag&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${CUSTOM_FLAG:false}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That means Jenkins → sets env vars → pipeline injects → Spring Boot picks up → test build runs.&lt;/p&gt;

&lt;p&gt;Now imagine you need to &lt;em&gt;flip&lt;/em&gt; &lt;code&gt;CUSTOM_FLAG&lt;/code&gt; for staging only, or enable a temporary feature for a hotfix branch. You’re either editing Jenkins, or committing test config files into the repo.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Kiponos&lt;/strong&gt;, you just:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Kiponos Web Console.&lt;/li&gt;
&lt;li&gt;Find the &lt;code&gt;custom.flag&lt;/code&gt; key.&lt;/li&gt;
&lt;li&gt;Flip it to &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Done. &lt;strong&gt;The pipeline and the Spring Boot app see it instantly&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No matter what branch is building, no matter which environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The SDK Side
&lt;/h2&gt;

&lt;p&gt;Your Spring Boot app just uses the Java SDK like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io.kiponos.Kiponos&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="nd"&gt;@Service&lt;/span&gt;
&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;FeatureToggleService&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="nc"&gt;Kiponos&lt;/span&gt; &lt;span class="n"&gt;kiponos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Kiponos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;createForCurrentTeam&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;isCustomFlagEnabled&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;kiponos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getRootFolder&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;getBoolean&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"custom.flag"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it. Your service is now &lt;strong&gt;wired to live config&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You don’t care if Jenkins, staging, or prod is running—the config lives in Kiponos, always up-to-date.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters for CI/CD
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One source of truth&lt;/strong&gt; → no more drift between pipeline vars and app vars.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant change&lt;/strong&gt; → flip a key in the web UI, pipeline behavior changes &lt;em&gt;mid-build&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branch-agnostic&lt;/strong&gt; → no special config files per branch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero redeploys&lt;/strong&gt; → changes propagate live over WebSockets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of managing &lt;strong&gt;environment sprawl&lt;/strong&gt;, you manage &lt;strong&gt;real-time config&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Big Picture
&lt;/h2&gt;

&lt;p&gt;We’ve been trained to accept that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configs belong in files.&lt;/li&gt;
&lt;li&gt;Pipelines need manual tweaks.&lt;/li&gt;
&lt;li&gt;Changing behavior requires redeploys.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But those are relics of the past. With Kiponos, &lt;strong&gt;configs are alive&lt;/strong&gt;. They’re not tied to branches, YAML, or container layers—they’re &lt;strong&gt;real-time signals&lt;/strong&gt; you control centrally.&lt;/p&gt;

&lt;p&gt;So the next time your staging pipeline fails because of a missing env var, remember:&lt;br&gt;
You don’t need more &lt;code&gt;.properties&lt;/code&gt; files.&lt;br&gt;
You need Kiponos.&lt;/p&gt;

&lt;p&gt;👉 Try it now: &lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;kiponos.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>springboot</category>
      <category>devops</category>
      <category>firebase</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Kiponos added a real-time collaboration Task Manager tailored for programmers and dev teams.</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Thu, 14 Aug 2025 18:54:44 +0000</pubDate>
      <link>https://forem.com/kiponos/kiponos-added-a-real-time-collaboration-task-manager-tailored-for-programmers-and-dev-teams-525b</link>
      <guid>https://forem.com/kiponos/kiponos-added-a-real-time-collaboration-task-manager-tailored-for-programmers-and-dev-teams-525b</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/kiponos" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2975663%2F21598326-fba9-412a-9291-a354d2c9d4e9.png" alt="kiponos"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/kiponos/configurations-forget-about-it-4gjp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Configurations? Forget about it!&lt;/h2&gt;
      &lt;h3&gt;Devops Kiponos ・ Mar 25&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#java&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#springboot&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#configuration&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>java</category>
      <category>springboot</category>
      <category>devops</category>
      <category>configuration</category>
    </item>
    <item>
      <title>Instead of Logs, notify your dashboard in real-time!</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Thu, 14 Aug 2025 18:46:05 +0000</pubDate>
      <link>https://forem.com/kiponos/log-directly-to-kiponos-dashboard-in-real-time-cff</link>
      <guid>https://forem.com/kiponos/log-directly-to-kiponos-dashboard-in-real-time-cff</guid>
      <description>&lt;h3&gt;
  
  
  Forget about logs to files or console!
&lt;/h3&gt;

&lt;p&gt;Instead, send log messages directly to your online Kiponos dashboard! using the free &lt;a href="https://mvnrepository.com/artifact/io.kiponos/sdk-boot-3/4.4.0.250319" rel="noopener noreferrer"&gt;Kiponos SDK&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As Kiponos internally dispatches your data using WebSockets, it is faster and safer then most log libraries and tools.&lt;/p&gt;

&lt;p&gt;You got real-time messaging, with virtually zero latency!&lt;/p&gt;

&lt;p&gt;For example, &lt;/p&gt;

&lt;p&gt;You want some analytics or metrics report when you run tests.&lt;/p&gt;

&lt;p&gt;Instead of logging, or even instead of reporting to a file, simply use the Kiponos SDK to "set" the keys and values at runtime like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;
   &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;totalOrdersCreated&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

   &lt;span class="c1"&gt;// Your counting logic....        &lt;/span&gt;
   &lt;span class="n"&gt;totalOrdersCreated&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;

   &lt;span class="c1"&gt;// Your SDK knows what's your team, runtime environment&lt;/span&gt;
   &lt;span class="c1"&gt;//    and config profile from the access token, &lt;/span&gt;
   &lt;span class="c1"&gt;//    so no need to worry about initialization...&lt;/span&gt;

   &lt;span class="nc"&gt;Kiponos&lt;/span&gt; &lt;span class="n"&gt;cfg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Kiponos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;createForCurrentTeam&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
   &lt;span class="nc"&gt;KiponosFolder&lt;/span&gt; &lt;span class="n"&gt;usageStats&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cfg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"orders-stats"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

   &lt;span class="c1"&gt;// Instantly displayed online in real-time on your dashboard.&lt;/span&gt;
   &lt;span class="n"&gt;usageStats&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;set&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"total-orders-created"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;totalOrdersCreated&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Your Real-Time Web Dashboard
&lt;/h3&gt;

&lt;p&gt;Any member of your team sees this in real-time on their dashboard:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27jzsk0b704pqt7bu6st.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27jzsk0b704pqt7bu6st.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Best,&lt;/p&gt;

&lt;p&gt;Moshe Avdiel, Kiponos dev team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;Kiponos.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>scala</category>
      <category>springboot</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Free Dev Teams Task Manager!</title>
      <dc:creator>Devops Kiponos</dc:creator>
      <pubDate>Thu, 14 Aug 2025 15:39:57 +0000</pubDate>
      <link>https://forem.com/kiponos/free-dev-teams-task-manager-3df1</link>
      <guid>https://forem.com/kiponos/free-dev-teams-task-manager-3df1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Kiponos.io&lt;/strong&gt;, the leading real-time config as a service, includes a real-time task collaboration tailored for programmers in their &lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;free plan&lt;/a&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  How to use
&lt;/h3&gt;

&lt;p&gt;SideBar --&amp;gt; Click "Task Mgr".&lt;/p&gt;

&lt;p&gt;At the bottom, enter your "todo" task in free text!&lt;/p&gt;

&lt;p&gt;A task card is dynamically constructed in real-time while you type!&lt;/p&gt;

&lt;p&gt;Click save and it's added to your list.&lt;/p&gt;

&lt;p&gt;Great for quickly adding tasks in the style of a quick note taking.&lt;/p&gt;




&lt;h3&gt;
  
  
  Features
&lt;/h3&gt;

&lt;p&gt;The free text describing the task includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Associating TAGS for the task.&lt;/li&gt;
&lt;li&gt;Estimation (and Due Date based on it).&lt;/li&gt;
&lt;li&gt;Switch Dev Stages like: Research, Design, Code, Test, etc...&lt;/li&gt;
&lt;li&gt;Simple Priority: High - Med - Low.&lt;/li&gt;
&lt;li&gt;Filter by TAG combinations.&lt;/li&gt;
&lt;li&gt;Filter by Priority.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kiponos.io/signup" rel="noopener noreferrer"&gt;Kiponos.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tooling</category>
      <category>development</category>
      <category>programmers</category>
    </item>
  </channel>
</rss>
