<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="360567" data-post-id="360567">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Maybe you could be the change you want to see in the world <img src="https://forum.elixirforum.com/images/emoji/apple/zany_face.png?v=15" title=":zany_face:" class="emoji" alt=":zany_face:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="360567" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-360567" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="360567"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="361107" data-post-id="361107">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="melissaloh" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/melissaloh/120/37647_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  melissaloh
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Curious about what writing the book has been like? <img src="https://forum.elixirforum.com/images/emoji/apple/woman_technologist.png?v=15" title=":woman_technologist:" class="emoji" alt=":woman_technologist:" loading="lazy" width="20" height="20"> <strong>Rebecca Le</strong>’s talk <em>Writing the book on Ash</em> from our recent Elixir Sydney meetup is now available.</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/eyes.png?v=15" title=":eyes:" class="emoji" alt=":eyes:" loading="lazy" width="20" height="20">You can watch it over here:</p><div class="youtube-onebox lazy-video-container" data-video-id="ChnPx3c3lUU" data-video-title="Writing the Book on Ash - Rebecca Le" data-video-start-time="" data-provider-name="youtube">
  <a href="https://www.youtube.com/watch?v=ChnPx3c3lUU" target="_blank" class="video-thumbnail" rel="noopener nofollow ugc">
    <img class="youtube-thumbnail" src="https://img.youtube.com/vi/ChnPx3c3lUU/maxresdefault.jpg" title="Writing the Book on Ash - Rebecca Le" width="690" height="388">
  </a>
</div>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="361107" data-batch-url="/posts/batch_likers">
                        6
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-361107" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="361107"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="361400" data-post-id="361400">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="vkryukov" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/vkryukov/120/39604_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  vkryukov
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello everyone,</p>
<p>I finally found time to read the “Ash Framework” book, and now finishing Chapter 5. The book is very clearly written, and carefully explains a lot of important concepts - thanks <a class="mention" href="/u/sevenseacat" rel="nofollow">@sevenseacat</a> and <a class="mention" href="/u/zachdaniel" rel="nofollow">@zachdaniel</a> !</p>
<p>I have a quick question about the “confirm your email address” email that is automatically sent as part of the password verification strategy. It doesn’t seem that the verification status is saved anywhere (no relevant field in <code>User</code> resource, for example) - is that something that the users of AshAuthentication are supposed to add themselves?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="361400" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-361400" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="361400"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="361406" data-post-id="361406">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="vkryukov" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/vkryukov/120/39604_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  vkryukov
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>And I just noticed that the migration does create a <code>confirmed_at</code> field, which is probably what is updated by the AshAuthentication code, it’s just not exposed as an attribute to the user. What’s the rationale for this decision?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="361406" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-361406" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="361406"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="361476" data-post-id="361476">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>When you say not exposed to the user, do you mean why is it not marked as a public attribute? You’re free to mark it as public if you want.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="361476" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-361476" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="361476"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="361497" data-post-id="361497">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="vkryukov" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/vkryukov/120/39604_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  vkryukov
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>What I meant is that <code>confirmed_at</code> is not present in the User’s attributes section, which looks like this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">  attributes do
    uuid_primary_key :id

    attribute :email, :ci_string do
      allow_nil? false
      public? true
    end

    attribute :hashed_password, :string do
      sensitive? true
    end
  end
</code></pre>
<p>Now, while it’s not mentioned in the book, the attribute <em>is</em> mentioned in the documentation, and I can see it been part of the migration that was automatically generated. I understand that I can simply add it to the attribute section myself; I was just curious why it was not defined there in the first place? Is that because it is only relevant for some authentication strategies but not others? Or is it considered for internal use only, and the developer is not supposed to access it directly but through some helper method?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="361497" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-361497" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="361497"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="361504" data-post-id="361504">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ah, right. So I actually think that is an oversight. You can add the attribute to that list. The way that AshAuthentication works is a mix of <em>modifying</em> the resource (like under the hood) and <em>verifying</em> the resource. When we made the switch to focus on generating more information into the end-user’s application, we probably just missed the <code>confirmed_at</code> attribute. Could you open an issue for us to add that to the installer?</p>
<p>If you do <code>Ash.Resource.Info.attribute(YourResource, :confirmed_at)</code> you will see that it actually does have that resource. Extensions have the ability to add and remove all kinds of things in that way. If you added the <code>confirmed_at</code> attribute, the extension wouldn’t add it but would use yours instead.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="361504" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-361504" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="361504"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="361587" data-post-id="361587">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="vkryukov" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/vkryukov/120/39604_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  vkryukov
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Done: <a href="https://github.com/team-alembic/ash_authentication/issues/963" class="inline-onebox" rel="noopener nofollow ugc">Installer should explicitly add :confirmed_at attribute for password strategy · Issue #963 · team-alembic/ash_authentication · GitHub</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="361587" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-361587" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="361587"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="363230" data-post-id="363230">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AndyL" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AndyL/120/3659_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AndyL
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just read the first chapter - the book is great.  I spent time studying Ash a couple years ago.  Things have come a long way.  The igniter generators are a giant improvement.  My favorite Ash change: renaming “API” to “Domain”.  I asked Grok3 what it knows about Ash: seems like quite a lot, and Grok seems informed about recent releases.  (it reads the hexdocs)  Overall very impressive.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="363230" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-363230" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="363230"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="363414" data-post-id="363414">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="GKinif" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/GKinif/120/38150_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  GKinif
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello,</p>
<p>I started reading the book a couple of weeks ago (unfortunately not a lot of time in the evening).</p>
<p>I am currently in Chapter 6 about Authorization, specifically the part “Writing Policies for Albums”.</p>
<p>When adding the “created_by” and “updated_by” attributes, there is a note about adding a policy in the user resource in order for actors to read their own records, allowing to populated the 2 fields.</p>
<p>Before adding the policy I tried without it to see what kind of error it would show and if I would understand it.<br>
Unfortunately when I tried, I did not found any errors in my terminal so wanted to know if I was missing something.</p>
<p><strong>Step to reproduce:</strong></p>
<p>I enabled Policy debugging in my dev config as recommended in the book</p>
<pre data-code-wrap="elixir"><code class="lang-elixir"># Enable policies debugging in development
config :ash, :policies, show_policy_breakdowns?: true
</code></pre>
<ul>
<li>Make sure there the policy for users to read their own record is removed</li>
<li>Create a new artists =&gt; works</li>
<li>Navigate to the artist details page (show_live)</li>
<li>Click the edit button</li>
<li>Try to change the artist name =&gt; fail</li>
<li>Put back the policy</li>
<li>Try to update the name again =&gt; works</li>
</ul>
<p>Here is the log I received in the terminal:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">"SAVE: %{\"biography\" =&gt; \"qsdsqdsq\", \"name\" =&gt; \"test3 2\"}"
[debug] HANDLE EVENT "save" in TunezWeb.Artists.FormLive
  Parameters: %{"form" =&gt; %{"biography" =&gt; "qsdsqdsq", "name" =&gt; "test3 2"}}
[debug] QUERY OK db=1.9ms idle=1043.2ms
begin []
↳ anonymous fn/3 in Ash.Changeset.with_hooks/3, at: lib/ash/changeset/changeset.ex:3695
[debug] QUERY OK source="artists" db=6.5ms
SELECT a0."id", a0."updated_by_id" FROM "artists" AS a0 WHERE (a0."id"::uuid::uuid = $1::uuid::uuid) ["05a9fb89-74da-4bcc-913b-b12a1f59c2c7"]
↳ anonymous fn/3 in AshPostgres.DataLayer.run_query/2, at: lib/data_layer.ex:785
[debug] QUERY OK db=4.7ms
rollback []
↳ anonymous fn/3 in Ash.Changeset.with_hooks/3, at: lib/ash/changeset/changeset.ex:3695
[debug] Replied in 26ms
</code></pre>
<p>My liveview does show an error notification, but without much details.<br>
Is there an information I am missing from the logs?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="363414" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ash-framework-book-club/69575/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-363414" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="363414"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #30"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/69575/load_more?page=4">Load more posts (3 remaining)</a>
</div></template></turbo-stream>