<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Domain Driven Architecture</title>
    <link>https://domaindrivenarchitecture.org/</link>
    <description>Recent content on Domain Driven Architecture</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Content © Meissa GmbH</copyright>
    <atom:link href="https://domaindrivenarchitecture.org/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Activities on federated star</title>
      <link>https://domaindrivenarchitecture.org/blog/2023-11-30-start-with-federated-stars/</link>
      <pubDate>Thu, 30 Nov 2023 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2023-11-30-start-with-federated-stars/</guid>
      <description>&lt;p&gt;We are on the way to implement the feature &amp;ldquo;federated star / unstar&amp;rdquo; activity end to end. The goal is to convince the codeberg team to switch this feature on as soon as possible.&lt;/p&gt;&#xA;&lt;p&gt;At the moment we are implementing the good path. We&amp;rsquo;ve reached &amp;ldquo;create user from response&amp;rdquo; (see sequence diagram at &lt;a  href=&#34;https://codeberg.org/meissa/forgejo/src/branch/forgejo-federated-star/docs/unsure-where-to-put/threat_analysis_star_activity.md&#34;   rel=&#34;external&#34;   &gt;codeberg.org&lt;/a&gt;&#xA;) - so you can expect the first curl-experiment-announcement in near future.&lt;/p&gt;&#xA;&lt;p&gt;In parallel we start the discussion which new threats might be introduced with this feature. If you are interested in hacking or security, feel welcome to contribute to the threat discussion at: &lt;a  href=&#34;https://codeberg.org/forgejo/forgejo/issues/1854&#34;   rel=&#34;external&#34;   &gt;https://codeberg.org/forgejo/forgejo/issues/1854&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Considerations on Mapping and Architectural decisions</title>
      <link>https://domaindrivenarchitecture.org/blog/2024-02-28-state-of-federation/</link>
      <pubDate>Wed, 28 Feb 2024 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2024-02-28-state-of-federation/</guid>
      <description>&lt;p&gt;This month we discussed how a federated Person should be mapped to a local FederatedUser representation. Having a reliable mapping will be very important to trace code- / issue- and other ownerships.&lt;/p&gt;&#xA;&lt;p&gt;I am very glad about the constructive &amp;amp; good discussion and many cool inputs. If you are interested in the federation related architecture you can have a sneak preview here: &lt;a  href=&#34;https://codeberg.org/meissa/forgejo/src/branch/forgejo-federated-star/docs/unsure-where-to-put/federation-architecture.md&#34;   rel=&#34;external&#34;   &gt;https://codeberg.org/meissa/forgejo/src/branch/forgejo-federated-star/docs/unsure-where-to-put/federation-architecture.md&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Next an final step on our way to &amp;ldquo;fereated Stars&amp;rdquo; will be &amp;ldquo;UI star triggers a federated Like Activity (in case of mirrored repos?)&amp;rdquo; - stay tuned for next month step :-).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Data-driven unit testing with data-test</title>
      <link>https://domaindrivenarchitecture.org/blog/2019-08-29-data-test/</link>
      <pubDate>Thu, 29 Aug 2019 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2019-08-29-data-test/</guid>
      <description>&lt;p&gt;We at DomainDrivenArchitecture do a lot of testing and we really appreciate test driven development. With test driven development we get good shaped APIs and ensure our projects are working as intended. As we eat our own dog food we love to have happy and satisfied customers.&lt;/p&gt;&#xA;&lt;p&gt;But there are also downsides of doing test first. Our DevOps projects (for example &lt;a target=&#34;_blank&#34; href=&#34;https://github.com/DomainDrivenArchitecture/dda-serverspec-crate&#34;&gt;dda-serverspec-crate&lt;/a&gt;) consists of large config maps. As a result, the maps representing input and expected output data of the tests were getting bigger and therefore hard to read. Only a small amount of the test code was actually calling the function under test.&lt;/p&gt;</description>
    </item>
    <item>
      <title>dda-pallet series: 3-Convention over Configuration</title>
      <link>https://domaindrivenarchitecture.org/blog/2017-10-20-convention-over-configuration/</link>
      <pubDate>Fri, 20 Oct 2017 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2017-10-20-convention-over-configuration/</guid>
      <description>&lt;p&gt;Our goal is a development environment properly set up straight away from the beginning - and additionally to be able to adjust your setup as you like. We are using &lt;a  href=&#34;https://domaindrivenarchitecture.org/pages/dda-pallet/&#34;    &gt;dda-pallet&lt;/a&gt;&#xA; to describe this infrastructure as clojure code. This blog is part of the &amp;ldquo;dda-pallet&amp;rdquo; series and will show step by step how to setup a clojure IDE:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a  href=&#34;https://domaindrivenarchitecture.org/posts/2017-07-07-first-steps-with-dda-pallet/&#34;    &gt;Provision existing Targets&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a  href=&#34;https://domaindrivenarchitecture.org/posts/2017-07-28-compose-crates/&#34;    &gt;Compose crates&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Convention over Configuration with Domain Driven Design.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a  href=&#34;https://domaindrivenarchitecture.org/posts/2018-03-02-execute-pallet-local&#34;    &gt;Execute Pallet local&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Plugin Operational Services&lt;/li&gt;&#xA;&lt;li&gt;Test-driven DevOps&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Last time we cloned some git repositories into a created user home in our future IDE. Today we will proceed with the dda-managed-vm crate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>dda-pallet uses gnupg protected credentials</title>
      <link>https://domaindrivenarchitecture.org/blog/2016-10-24-encrypted-credentials/</link>
      <pubDate>Mon, 24 Oct 2016 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2016-10-24-encrypted-credentials/</guid>
      <description>&lt;p&gt;In DevOps systems we&amp;rsquo;ve many places were credentials are needed. Often these credentials provide access to many servers or whole datacenters. So if they get compromised, this would be one of the maximum credible security accidents.&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;h2  id=&#34;considerations&#34; &gt;Considerations&lt;/h2&gt;&#xA;&lt;p&gt;So having a good security concept for credentials will be essential to any DevOps system. For dda-pallet we took the following decisions:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;We use proven tooling: We&amp;rsquo;re using GnuPG (&lt;a  href=&#34;https://gnupg.org/%29&#34;   rel=&#34;external&#34;   &gt;https://gnupg.org/)&lt;/a&gt;&#xA;, Bouncy Castle (&lt;a  href=&#34;http://bouncycastle.org/&#34;   rel=&#34;external&#34;   &gt;http://bouncycastle.org/&lt;/a&gt;&#xA;) and clj-pgp (&lt;a  href=&#34;https://github.com/greglook/clj-pgp%29&#34;   rel=&#34;external&#34;   &gt;https://github.com/greglook/clj-pgp)&lt;/a&gt;&#xA;. This security toolchain is also used by Leinigen in order to sign code.&lt;/li&gt;&#xA;&lt;li&gt;We need tools to en- and de-crypt credentials manually: We will use the REPL for this.&lt;/li&gt;&#xA;&lt;li&gt;We will use credentials only in the most secure way in dda-pallet. This means&lt;/li&gt;&#xA;&lt;li&gt;unlock secret keys at the last possible point in time before usage.&lt;/li&gt;&#xA;&lt;li&gt;don&amp;rsquo;t store unencrypted credentials, keys on the target system.&lt;/li&gt;&#xA;&lt;li&gt;passphrases are never stored.&lt;/li&gt;&#xA;&lt;li&gt;should review log-output for compromising outputs.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re searching for a more in-depth reasoning, you will find our analysis and decisions in more detail.&#xA;Let&amp;rsquo;s do a roundtrip for our credentials handling:&lt;/p&gt;</description>
    </item>
    <item>
      <title>DevOps Business Value</title>
      <link>https://domaindrivenarchitecture.org/blog/2016-08-08-devops-business-value/</link>
      <pubDate>Mon, 08 Aug 2016 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2016-08-08-devops-business-value/</guid>
      <description>&lt;p&gt;Maybe it&amp;rsquo;s a simple question but did you ever have think about &amp;ldquo;what makes the business value of DevOps&amp;rdquo;?&lt;/p&gt;&#xA;&lt;p&gt;There is one obvious answer: Automation makes installations more repeatable, scalable and faster. Automation drives our world since more than a thousand years, and it will continue to be valuable. But beside this high level answer, there is also an answer with more DevOps insight:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;The DevOps BusinessValue depends strongly on the right level of Abstraction&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Even More Progress on Merging</title>
      <link>https://domaindrivenarchitecture.org/blog/2024-05-24-state-of-federation/</link>
      <pubDate>Fri, 24 May 2024 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2024-05-24-state-of-federation/</guid>
      <description>&lt;p&gt;Since our last blog post, two more PRs have been merged on the way to federated stars in Forgejo. In addition, the 5th PR is already in progress.&lt;/p&gt;&#xA;&lt;p&gt;As all these smaller PRs are subparts of our larger PR for federation of star activities, the current progress can be seen in the reducing number of &amp;ldquo;Files Changed&amp;rdquo; in the large PR:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://domaindrivenarchitecture.org/img/posts/state-of-federation/afterThirdPR.jpg&#34; alt=&#34;after 3. PR there are 32 changed files left&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Federated staring open for test</title>
      <link>https://domaindrivenarchitecture.org/blog/2023-12-30-state-of-federation/</link>
      <pubDate>Sat, 30 Dec 2023 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2023-12-30-state-of-federation/</guid>
      <description>&lt;p&gt;Hey, we ar on our way to implement federated stars. We created a test instance to show the new feature - an now you can test federation live :-)&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;The repo&lt;/strong&gt; ready to receive your star is located at: &lt;a  href=&#34;https://federated-repo.prod.meissa.de/me/star-me&#34;   rel=&#34;external&#34;   &gt;https://federated-repo.prod.meissa.de/me/star-me&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Post a star activity&lt;/strong&gt; at: &lt;a  href=&#34;https://federated-repo.prod.meissa.de/api/swagger#/activitypub/activitypubRepository&#34;   rel=&#34;external&#34;   &gt;https://federated-repo.prod.meissa.de/api/swagger#/activitypub/activitypubRepository&lt;/a&gt;&#xA; &amp;amp; press the `Try It Out`` button. The input can look like:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;    &#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;paige-shortcode-figure &#34;&gt;&#xA;&lt;div class=&#34;align-items-center d-flex  h-100 justify-content-center &#34;&gt;&#xA;&lt;figure class=&#34; mb-0&#34; &gt;&#xA;&lt;div class=&#34;d-flex justify-content-center text-center&#34;&gt;&lt;div class=&#34;paige-shortcode-image&#34;&gt;&#xA;&lt;a   href=&#34;https://domaindrivenarchitecture.org/images/posts/state-of-federation/star-via-api.png&#34;   &gt;&#xA;&lt;img  alt=&#34;Test definitions.&#34;   class=&#34;img-fluid &#34;  crossorigin=&#34;anonymous&#34;   height=&#34;819&#34;   referrerpolicy=&#34;no-referrer&#34;  src=&#34;https://domaindrivenarchitecture.org/images/posts/state-of-federation/star-via-api.311be0d8bb416453b0380c06d27f26058c9bd3e480823faa1210db8b94dd88b9.png&#34;   style=&#34;height: auto; max-width: 32rem&#34;    width=&#34;1437&#34; &gt;&#xA;&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;Put &amp;ldquo;1&amp;rdquo; in to the repo &amp;amp; add the following payload&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;    &#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;https://federated-repo.prod.meissa.de/api/v1/activitypub/user-id/1/outbox/12&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;Star&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;forgejo&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;actor&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;https://federated-repo.prod.meissa.de/api/v1/activitypub/user-id/14&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;object&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;https://federated-repo.prod.meissa.de/api/v1/activitypub/repository-id/1&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;As every user can only put one star, we created 12 users for your experiment on our instance &lt;code&gt;&amp;quot;actor&amp;quot;: &amp;quot;https://federated-repo.prod.meissa.de/api/v1/activitypub/user-id/2-13&amp;quot;,&lt;/code&gt;. But if you are on a forgejo instance having active &lt;code&gt;activitypub/user-id&lt;/code&gt; api you can insert also your foreign-instance-user-uri here.&lt;/li&gt;&#xA;&lt;li&gt;Press execute &amp;amp; visit again the repo (&lt;a  href=&#34;https://federated-repo.prod.meissa.de/me/star-me&#34;   rel=&#34;external&#34;   &gt;https://federated-repo.prod.meissa.de/me/star-me&lt;/a&gt;&#xA;) and enjoy your star :-)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;    &#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;paige-shortcode-figure &#34;&gt;&#xA;&lt;div class=&#34;align-items-center d-flex  h-100 justify-content-center &#34;&gt;&#xA;&lt;figure class=&#34; mb-0&#34; &gt;&#xA;&lt;div class=&#34;d-flex justify-content-center text-center&#34;&gt;&lt;div class=&#34;paige-shortcode-image&#34;&gt;&#xA;&lt;a   href=&#34;https://domaindrivenarchitecture.org/images/posts/state-of-federation/find-your-new-star.png&#34;   &gt;&#xA;&lt;img  alt=&#34;Test definitions.&#34;   class=&#34;img-fluid &#34;  crossorigin=&#34;anonymous&#34;   height=&#34;401&#34;   referrerpolicy=&#34;no-referrer&#34;  src=&#34;https://domaindrivenarchitecture.org/images/posts/state-of-federation/find-your-new-star.0787417b250250d9271ff2f5bee6eedcc70f0c3df25638ce5d3413796ae10641.png&#34;   style=&#34;height: auto; max-width: 32rem&#34;    width=&#34;748&#34; &gt;&#xA;&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;At the moment we discuss threats arising by this feature. If you are interested we will be happy to get your 2 cents here:&#xA;&lt;a  href=&#34;https://codeberg.org/forgejo/forgejo/issues/1854&#34;   rel=&#34;external&#34;   &gt;https://codeberg.org/forgejo/forgejo/issues/1854&lt;/a&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Federated staring with Like Activity</title>
      <link>https://domaindrivenarchitecture.org/blog/2024-01-30-state-of-federation/</link>
      <pubDate>Tue, 30 Jan 2024 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2024-01-30-state-of-federation/</guid>
      <description>&lt;p&gt;We did the next step. We now use a plain Like Activity for expressing the Star action.&#xA;In addition we fixed some bugs, made error responses more meaningful, improved security by validating every input we get on federation &amp;amp; mitigate identified threats (SlowLories, Replay Attacks, Block by future StartTime).&lt;/p&gt;&#xA;&lt;p&gt;DOS attacks we now mitigate in our k8s ingress. Find the code in our &lt;a  href=&#34;https://repo.prod.meissa.de/meissa/c4k-forgejo/pulls/3&#34;   rel=&#34;external&#34;   &gt;PR for c4k-forgejo&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;At &lt;a  href=&#34;https://federated-repo.prod.meissa.de/me/star-me&#34;   rel=&#34;external&#34;   &gt;https://federated-repo.prod.meissa.de/me/star-me&lt;/a&gt;&#xA; you can try out the current code the same way as described above with the following activity (maybe find an unused user by alternating the actors user-id).&lt;/p&gt;</description>
    </item>
    <item>
      <title>From container to a running k8s</title>
      <link>https://domaindrivenarchitecture.org/blog/2021-10-09-from-container-to-a-running-k8s/</link>
      <pubDate>Sat, 09 Oct 2021 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2021-10-09-from-container-to-a-running-k8s/</guid>
      <description>&lt;p&gt;&lt;em&gt;This tutorial shows how to set up a running k8s system by using the k3s distribution within just some minutes.&lt;/em&gt;&#xA;&lt;em&gt;Additionally, it provides a rudimentary introduction to some selected k8s key concepts.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;As an example container we use a httpd webserver container (rather than nginx, in order to avoid confusion with nginx-ingress), but of course you may use any other container instead.&lt;/p&gt;&#xA;&lt;p&gt;For k8s we use &lt;a  href=&#34;https://k3s.io&#34;   rel=&#34;external&#34;   &gt;k3s&lt;/a&gt;&#xA;, a lightweight but complete k8s distribution, which is also suitable for production environments.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gopass Quick-Reference</title>
      <link>https://domaindrivenarchitecture.org/blog/2020-01-29-gopassquickref/</link>
      <pubDate>Wed, 29 Jan 2020 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2020-01-29-gopassquickref/</guid>
      <description>&lt;p&gt;&lt;a target=&#34;_blank&#34; href=&#34;https://www.gopass.pw/&#34;&gt;Gopass&lt;/a&gt; is a password-manager suitable for individuals and especially for teams. Key features include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Encrypted storage of secrets (each secret is stored in its own file)&lt;/li&gt;&#xA;&lt;li&gt;Encryption by GPG (GnuPG)&lt;/li&gt;&#xA;&lt;li&gt;Versioning by GIT (in git repositories)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;A &lt;strong&gt;secret&lt;/strong&gt; in gopass can consist of a single value, such as a password,&#xA;or multiple fields containing additional information like a username, URL, etc.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;h2  id=&#34;file-structure-of-gopass&#34; &gt;File structure of gopass&lt;/h2&gt;&#xA;&lt;p&gt;Gopass stores all secrets in separate files in a directory structure. The files are encrypted for certain gpg-ids.&#xA;The gpg-ids used for the encryption are stored in files named &lt;code&gt;.gpg-id&lt;/code&gt;.&lt;br&gt;&#xA;More precisely, a file &lt;code&gt;.gpg-id&lt;/code&gt; contains all public gpg-ids (in fact their fingerprints) which are used to encrypt all the files in the same folder and all subfolders.&#xA;If there is another &lt;code&gt;.gpg-id&lt;/code&gt; file in a subfolder, it &amp;ldquo;overwrites&amp;rdquo; on its turn the keys of this subfolder and sub-subfolders.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To: Federated Stars</title>
      <link>https://domaindrivenarchitecture.org/blog/2024-06-05-howto-federated-stars/</link>
      <pubDate>Wed, 05 Jun 2024 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2024-06-05-howto-federated-stars/</guid>
      <description>&lt;p&gt;With the final PR the first star federation feature will be completely added to Forgejo. You can check out the PR that contains an overview over the new feature: &lt;a  href=&#34;https://codeberg.org/forgejo/forgejo/pulls/1680&#34;   rel=&#34;external&#34;   &gt;https://codeberg.org/forgejo/forgejo/pulls/1680&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The feature allows you to define following repositories such as origin of mirrors or forks. If then the mirror or fork gets a star by someone, the origin repository will also get a star via federated ActivityPub like activity. Please note, however, that for now only the star activity is federated. The unstar activity is not yet federated.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HowTo: Setup forgejo runner and create basic actions</title>
      <link>https://domaindrivenarchitecture.org/blog/2025-07-30-setting-up-runner-and-actions-on-forgejo/</link>
      <pubDate>Wed, 30 Jul 2025 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2025-07-30-setting-up-runner-and-actions-on-forgejo/</guid>
      <description>&lt;p&gt;The forgejo actions feel very familliar to the CI of a well known git service. They are complete with env vars, secret handling, packages artifacts and releases.&#xA;You can even self-host the runners and connect them to your forgejo instance (or even your account on codeberg.org). This HowTo will explain the setup of the runner in a k3s environment with an existing forgejo deployment and give some basic ideas on how to create a forgejo actions workflow touching some basics on the way.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HowTo: SSO Forgejo with keycloak</title>
      <link>https://domaindrivenarchitecture.org/blog/2026-03-04-sso-forgejo-with-keycoak/</link>
      <pubDate>Wed, 04 Mar 2026 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2026-03-04-sso-forgejo-with-keycoak/</guid>
      <description>&lt;p&gt;Keycloak OpenID connect authentication allows users to log in to Forgejo using their Keycloak credentials. This article explains how to set up Keycloak as an authentication provider in Forgejo.&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;h2  id=&#34;authentication&#34; &gt;Authentication&lt;/h2&gt;&#xA;&lt;p&gt;First use case to integrate is &lt;strong&gt;authentication&lt;/strong&gt;. Authentication tells the integrated Forgejo who the user is. Under the hood this will login existing users and in addition register unknown ones.&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;    &#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;paige-shortcode-figure &#34;&gt;&#xA;&lt;div class=&#34;align-items-center d-flex  h-100 justify-content-center &#34;&gt;&#xA;&lt;figure class=&#34; mb-0&#34; &gt;&#xA;&lt;div class=&#34;d-flex justify-content-center text-center&#34;&gt;&lt;div class=&#34;paige-shortcode-image&#34;&gt;&#xA;&lt;a   href=&#34;https://domaindrivenarchitecture.org/images/posts/sso-forgejo-keycloak/authentication-flow.png&#34;   &gt;&#xA;&lt;img  alt=&#34;Federation auth flow.&#34;   class=&#34;img-fluid &#34;  crossorigin=&#34;anonymous&#34;   height=&#34;601&#34;   referrerpolicy=&#34;no-referrer&#34;  src=&#34;https://domaindrivenarchitecture.org/images/posts/sso-forgejo-keycloak/authentication-flow.9124ed4d749e227b7f05647f225e864d9dc9fb3a62aa87f134d298131e92e06f.png&#34;   style=&#34;height: auto; max-width: 32rem&#34;    width=&#34;1190&#34; &gt;&#xA;&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;h3  id=&#34;keycloak-setup-client&#34; &gt;Keycloak: Setup Client&lt;/h3&gt;&#xA;&lt;p&gt;We will setup the keycloak client Forgejo will connect to.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Keycloak: Migrate away from Bitnami</title>
      <link>https://domaindrivenarchitecture.org/blog/2026-02-16-keycloak-without-bitnami/</link>
      <pubDate>Mon, 16 Feb 2026 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2026-02-16-keycloak-without-bitnami/</guid>
      <description>&lt;p&gt;We used the Bitnami distribution for keycloak and to be honest this was an intuitive decision. I think the reason was, most of the How-Tos we found are based on Bitnami&amp;rsquo;s Helm Chart.&lt;/p&gt;&#xA;&lt;p&gt;Instead of helm, we use our own &lt;strong&gt;Convention 4 Kubernetes&lt;/strong&gt; or short &lt;strong&gt;c4k&lt;/strong&gt; - just because we believe in &lt;strong&gt;Using a programming language if you do software&lt;/strong&gt;. Helm template language we consider not to be a programming language.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mulitmodule Build in Clojure</title>
      <link>https://domaindrivenarchitecture.org/blog/2016-07-14-multimodule-build-in-clojure/</link>
      <pubDate>Thu, 14 Jul 2016 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2016-07-14-multimodule-build-in-clojure/</guid>
      <description>&lt;p&gt;When using clojure &amp;amp; lein for larger systems composed of many modules, you may know the multibuild problem - it&amp;rsquo;s ugly and boring to release / test / ancient all your modules one after another manually! And it has to be done ordered by dependency!&lt;/p&gt;&#xA;&lt;p&gt;On the other hand, you may insist on having multiple modules, because it&amp;rsquo;s handy to have independent release cycles or different access policies.&lt;/p&gt;&#xA;&lt;p&gt;Thats exactly our situation at &lt;a  href=&#34;https://github.com/DomainDrivenArchitecture&#34;   rel=&#34;external&#34;   &gt;dda-pallet&lt;/a&gt;&#xA; (a clojure dev-ops-system we maintain).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Progress on Merging</title>
      <link>https://domaindrivenarchitecture.org/blog/2024-05-15-state-of-federation/</link>
      <pubDate>Wed, 15 May 2024 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2024-05-15-state-of-federation/</guid>
      <description>&lt;p&gt;We proudly announce the second PR on the way to federated star in forgejo is merged.&lt;/p&gt;&#xA;&lt;p&gt;It is a real pleasure to contribute to forgejo. We got many cool and improving review comments. This increases the quality of our code - we thank you :-).&lt;/p&gt;&#xA;&lt;p&gt;As you can see, we divide our large feature request step by step:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://domaindrivenarchitecture.org/img/posts/state-of-federation/beforeSecondPR.jpg&#34; alt=&#34;before PR there are 51 changed files&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://domaindrivenarchitecture.org/img/posts/state-of-federation/afterSecondPR.jpg&#34; alt=&#34;after PR there are 36 changed files&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Seamless Notebookcloud</title>
      <link>https://domaindrivenarchitecture.org/blog/2014-11-04-seamless-notebookcloud/</link>
      <pubDate>Tue, 04 Nov 2014 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2014-11-04-seamless-notebookcloud/</guid>
      <description>&lt;p&gt;Whoever has started to develop with virtual machines will know the advantages after a short time .&#xA;A short list of these advantages is:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Instant IDE for software development projects:&lt;/strong&gt; Configuring an IDE is very time consuming. These efforts however are hidden in most cases. After the first install there will be a long ramp-up time till each developer has reached good efficiency.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Freedom:&lt;/strong&gt; from the underlying hardware and operating system used. Developing with Linux, although on company computers only Windows is installed? Or do you want to use a Windows environment on a Mac operating system? All this is possible.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Riskless work with different configurations:&lt;/strong&gt; Who can claim that he can fearlessly try a Tool xy - just as a short test? Often there will be left over parts from such test installations - maybe there is a config-file left, a dll or some changed package dependencies. Using VMs you can easily snapshot or copy your VM. So a save reset always is possible.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tests for large infrastructures:&lt;/strong&gt; You develop client / server software , or want to integrate web services? Do you want to research bugs from your production system? By using VMs this is all possible on your own computer, mobile and usable on the go.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;However&amp;hellip; there are some negative aspects also.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simplify Setup of Repository Federation</title>
      <link>https://domaindrivenarchitecture.org/blog/2024-04-04-state-of-federation/</link>
      <pubDate>Thu, 04 Apr 2024 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2024-04-04-state-of-federation/</guid>
      <description>&lt;p&gt;We are approaching the discussion to get our feature merged :-)&lt;/p&gt;&#xA;&lt;p&gt;Since the last blog post, among other minor improvements, we have improved the setup of federated repositories.&lt;/p&gt;&#xA;&lt;p&gt;In order to setup a federated repo, it is necesary to provide the ActivityPub URL (containing the repo id) in the settings of the repo. However before, it was not obvious how to get this URL.&lt;/p&gt;&#xA;&lt;p&gt;Now, the ActivityPub URL can simply be shown in the Federation Settings of the repo. From there, just copy-paste it into the desired repo settings. In the following video you can see the star federation in action with improved setup:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Testing the cloud with dda-cloudspec</title>
      <link>https://domaindrivenarchitecture.org/blog/2018-06-24-dda-cloudspec/</link>
      <pubDate>Sun, 24 Jun 2018 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2018-06-24-dda-cloudspec/</guid>
      <description>&lt;p&gt;Testing entire infrastructures can be challenging especially when the infrastructure consists not only of container and server images.&lt;/p&gt;&#xA;&lt;p&gt;Consequently, testing networks is the next important step in the process of testing infrastructures. We are currently using our &lt;a target=&#34;_blank&#34; href=&#34;https://github.com/DomainDrivenArchitecture/dda-serverspec-crate&#34;&gt;dda-serverspec-crate&lt;/a&gt; for executing simultaneous tests on localhost or remote hosts by ssh on mulitple targets. Beside testing installed files or packages we&amp;rsquo;ve added the ability to do networking tests in addition. Imagine executing curl or netcat on a remote server connected over ssh.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ui-Work for Sending Like Activities</title>
      <link>https://domaindrivenarchitecture.org/blog/2024-03-27-state-of-federation/</link>
      <pubDate>Wed, 27 Mar 2024 00:00:00 &#43;0100</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2024-03-27-state-of-federation/</guid>
      <description>&lt;p&gt;Currently we are working on the functionality to send like activities to federated repositories triggered by a users star action on UI.&lt;/p&gt;&#xA;&lt;p&gt;In the settings of a repository there is now a field allowing to define its federated repositories (that is just intended to be a workaround till &amp;ldquo;following&amp;rdquo; on repositories is implemented):&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;    &#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;paige-shortcode-figure &#34;&gt;&#xA;&lt;div class=&#34;align-items-center d-flex  h-100 justify-content-center &#34;&gt;&#xA;&lt;figure class=&#34; mb-0&#34; &gt;&#xA;&lt;div class=&#34;d-flex justify-content-center text-center&#34;&gt;&lt;div class=&#34;paige-shortcode-image&#34;&gt;&#xA;&lt;a   href=&#34;https://domaindrivenarchitecture.org/images/posts/state-of-federation/federation-settings.png&#34;   &gt;&#xA;&lt;img  alt=&#34;Federation settings in repo.&#34;   class=&#34;img-fluid &#34;  crossorigin=&#34;anonymous&#34;   height=&#34;205&#34;   referrerpolicy=&#34;no-referrer&#34;  src=&#34;https://domaindrivenarchitecture.org/images/posts/state-of-federation/federation-settings.cad7d854573ca3bfaef77020ee88969da64c839ba00d645667c7e235c9b710e3.png&#34;   style=&#34;height: auto; max-width: 32rem&#34;    width=&#34;1051&#34; &gt;&#xA;&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;In the following video you can see the star federation in action:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Upcoming Federate User Activities</title>
      <link>https://domaindrivenarchitecture.org/blog/2025-08-14-upcoming-federated-user-activities/</link>
      <pubDate>Thu, 14 Aug 2025 00:00:00 &#43;0200</pubDate>
      <guid>https://domaindrivenarchitecture.org/blog/2025-08-14-upcoming-federated-user-activities/</guid>
      <description>&lt;p&gt;With the final PR the next large federation feature &amp;ldquo;Federated User Activities&amp;rdquo; will be completely added to Forgejo. You can check out the PR that contains an overview over the new feature: &lt;a  href=&#34;https://codeberg.org/forgejo/forgejo/pulls/4767&#34;   rel=&#34;external&#34;   &gt;https://codeberg.org/forgejo/forgejo/pulls/4767&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The feature allows you to follow other users across the fediverse without leaving your beloved Forgejo UI. To be honest, the other direction might be way more interesting. You will be able to follow the activities of a Forgejo user from all over the federated world. You will get informed if this user creates a new repository, opens an pull request or works on an issue.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>