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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rodloboz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rodloboz/120/37865_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rodloboz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It’s released in Lotus v0.13.0 and Lotus.Web v0.12.0</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="383263" 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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-383263" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="383263"
                     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 #41"></div>
  </section>
</div>
    <div class="postbit" id="383331" data-post-id="383331">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Can we restrict the values of variables the normal users can set? for example usually you do not want to allow long running queries on certain databases through the date range period? Another example , if we have filtering per some columnon user profile such as the institution or tenant he/she belong to ?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="383331" 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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-383331" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="383331"
                     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 #42"></div>
  </section>
</div>
    <div class="postbit" id="383338" data-post-id="383338">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rodloboz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rodloboz/120/37865_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rodloboz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Currently Lotus doesn’t have built-in variable constraints or per-user variable injection. By design, Lotus doesn’t manage its own users or roles — it relies on the host application for authentication, and assumes that anyone with access to the dashboard is a trusted user. So there’s no built-in mechanism to restrict what different users can do once they’re in.</p>
<p>That said, I can see the value in both of these:</p>
<ol>
<li>Date range constraints — preventing expensive queries by limiting how wide a date range can be</li>
<li>Automatic filtering by user context — e.g., forcing a tenant_id based on who’s logged in, so users only see their own data</li>
</ol>
<p>Neither is on the roadmap right now, but they’re both interesting ideas. If you’d like to see either of these, please open a feature request at <a href="https://github.com/typhoonworks/lotus/issues" class="inline-onebox" rel="noopener nofollow ugc">Issues · elixir-lotus/lotus · GitHub</a></p>
<p>It helps me understand what people actually need and prioritize accordingly.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="383338" data-batch-url="/posts/batch_likers">
                        5
                      </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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-383338" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="383338"
                     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 #43"></div>
  </section>
</div>
    <div class="postbit" id="383414" data-post-id="383414">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I had a tough query to write today that used JSON aggregates and multiple subqueries, so I got to test out the new AI chat flow. It worked out great, had a working query after about 3 error corrections! <img src="https://forum.elixirforum.com/images/emoji/apple/rocket.png?v=15" title=":rocket:" class="emoji" alt=":rocket:" 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="383414" 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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-383414" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="383414"
                     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 #44"></div>
  </section>
</div>
    <div class="postbit" id="383419" data-post-id="383419">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rodloboz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rodloboz/120/37865_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rodloboz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Wow that’s amazing. Thanks for the feedback <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20"></p>
<p>I wonder if there is something that can be done to get right in one shot</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="383419" 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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-383419" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="383419"
                     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 #45"></div>
  </section>
</div>
    <div class="postbit" id="383523" data-post-id="383523">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rodloboz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rodloboz/120/37865_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rodloboz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve added support for multiple values in variables via multi select dropdown or a new freeform input that adds selected values as chip tags</p>
<p><strong>Tag input</strong></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/7/2/72b1ae229554e808e8153f4ff93615c861b4ae7f.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/72b1ae229554e808e8153f4ff93615c861b4ae7f" title="CleanShot 2026-02-16 at 07.53.49@2x" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/7/2/72b1ae229554e808e8153f4ff93615c861b4ae7f.jpeg" alt="CleanShot 2026-02-16 at 07.53.49@2x" data-base62-sha1="gmD6NPiHQPT7nSSmZ9VhbGCyQ9N" width="690" height="383" data-dominant-color="F9F7FA"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">CleanShot 2026-02-16 at 07.53.49@2x</span><span class="informations">1200×667 28.1 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p><strong>Multi select dropdown</strong></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/8/8/887049e15d8242eaa412a1727138081f4d084d0d.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/887049e15d8242eaa412a1727138081f4d084d0d" title="CleanShot 2026-02-16 at 07.54.41@2x" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/8/8/887049e15d8242eaa412a1727138081f4d084d0d.jpeg" alt="CleanShot 2026-02-16 at 07.54.41@2x" data-base62-sha1="jsZvOGHeNhBUKvDUWfngcpXPqrz" width="690" height="385" data-dominant-color="F8F7F9"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">CleanShot 2026-02-16 at 07.54.41@2x</span><span class="informations">1200×670 30 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>Released in:</p>
<p>Lotus v0.14.0 <a href="https://github.com/typhoonworks/lotus" class="inline-onebox" rel="noopener nofollow ugc">GitHub - elixir-lotus/lotus: Embeddable business intelligence engine for Elixir — SQL editor, dashboards, charts, and AI query generation that mount directly in your Phoenix app. · GitHub</a></p>
<p>Lotus Web v0.13.0 <a href="https://github.com/typhoonworks/lotus_web" class="inline-onebox" rel="noopener nofollow ugc">GitHub - elixir-lotus/lotus_web: LiveView-powered BI interface for Phoenix — SQL editor, dashboards, charts, and AI query assistant. No separate deployment needed. · 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="383523" data-batch-url="/posts/batch_likers">
                        3
                      </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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-383523" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="383523"
                     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 #46"></div>
  </section>
</div>
    <div class="postbit" id="383793" data-post-id="383793">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Maybe this is out of scope for your project, but I was wondering if you could add an option to allow write queries to work in lotus.</p>
<p>Basically the idea would be to have it only enabled in dev so it can also help development in general instead of the user having to use psql, or some other third party sql ui.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="383793" 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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/48">Post #47</a>
	                </div>
	            </div>
              <div id="likers-container-383793" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="383793"
                     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 #47"></div>
  </section>
</div>
    <div class="postbit" id="383796" data-post-id="383796">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rodloboz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rodloboz/120/37865_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rodloboz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for the suggestion! While Lotus is primarily focused on read-only analytics and reporting, this actually aligns with something we already had in the codebase but wasn’t properly exposed.</p>
<p>Lotus already had a <code>read_only</code> option that flowed through to the database adapters, but the application-level SQL validation was ignoring it — so it was effectively broken. We’ve now fixed that and promoted it to a first-class config option.</p>
<p>Starting from main (will be in the next release), you can set it globally:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">config :lotus,
       read_only: false
</code></pre>
<p>This disables the application-level deny list for INSERT, UPDATE, DELETE, DDL, etc. — both for <code>Lotus.run_sql/Lotus.run_query</code> calls and through the Lotus Web UI.</p>
<p>Single-statement validation and table visibility rules still apply.</p>
<p>You can also override it per-call (on the <code>lotus</code> lib) without changing the global config:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">Lotus.run_sql(
  “INSERT INTO notes (body) VALUES ($1) RETURNING id”,
  [“hello”],
  read_only: false
)
</code></pre>
<p>The AI query generator also respects this — when read_only: false is configured, it will generate write queries when asked.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="383796" data-batch-url="/posts/batch_likers">
                        3
                      </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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/49">Post #48</a>
	                </div>
	            </div>
              <div id="likers-container-383796" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="383796"
                     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 #48"></div>
  </section>
</div>
    <div class="postbit" id="384489" data-post-id="384489">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rodloboz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rodloboz/120/37865_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rodloboz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just playing with the Lotus AI Assistant, with typos and all, and it unlocks such power moves for when you want to do visualizations!</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/a/b/ab891687db18751b83340c3bb849c1ffd7d204ee.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/ab891687db18751b83340c3bb849c1ffd7d204ee" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/a/b/ab891687db18751b83340c3bb849c1ffd7d204ee_2_690x384.jpeg" alt="image" data-base62-sha1="ottm8TXR333EF2RUW6Igro47dAW" width="690" height="384" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/a/b/ab891687db18751b83340c3bb849c1ffd7d204ee_2_690x384.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/a/b/ab891687db18751b83340c3bb849c1ffd7d204ee_2_1035x576.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/a/b/ab891687db18751b83340c3bb849c1ffd7d204ee.jpeg 2x" data-dominant-color="F7F4F7"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">1200×668 38.2 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/7/f/7feb1a8414a3d3dd15f470e65d669675da19b737.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/7feb1a8414a3d3dd15f470e65d669675da19b737" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/7/f/7feb1a8414a3d3dd15f470e65d669675da19b737_2_690x385.jpeg" alt="image" data-base62-sha1="ifClrpfWTF9dOOgR91UAexkk4K3" width="690" height="385" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/7/f/7feb1a8414a3d3dd15f470e65d669675da19b737_2_690x385.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/7/f/7feb1a8414a3d3dd15f470e65d669675da19b737_2_1035x577.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/7/f/7feb1a8414a3d3dd15f470e65d669675da19b737.jpeg 2x" data-dominant-color="CDD6E3"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">1200×671 33.2 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>The AI Assistant understands Lotus Queries and Lotus Variables (for easy query and inputs+widget generation) but it has no awareness of the visualizations. But it’s still helpful to give a rough description of the kind of viz we want to see and it will give you a usable query</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="384489" data-batch-url="/posts/batch_likers">
                        3
                      </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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/50">Post #49</a>
	                </div>
	            </div>
              <div id="likers-container-384489" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="384489"
                     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 #49"></div>
  </section>
</div>
    <div class="postbit" id="384703" data-post-id="384703">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rodloboz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rodloboz/120/37865_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rodloboz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey everyone! Really excited about this one! Our latest versions of Lotus and Lotus Web make up the biggest Lotus release yet.</p>
<p><strong>AI Assistant</strong></p>
<p>We added a bunch of new AI capabilities on top of the multi-turn conversations from the previous release:</p>
<ul>
<li>Explain query / Explain fragment — select a piece of SQL you don’t understand and the AI breaks it down in plain English. Really useful when you’re looking at someone else’s query or a complex JOIN.</li>
<li>Optimize query — runs EXPLAIN under the hood and gives you suggestions like missing indexes, query rewrites, etc.</li>
<li>Variable-aware — the AI now understands the <code>{{variable}}</code> and <code>[[optional clause]]</code> syntax, so it can generate parameterized queries with the right variable types and input widgets out of the box.</li>
</ul>
<p>On the provider side, we now support way more LLMs — OpenAI, Anthropic, Google, Groq, Mistral, and anything else ReqLLM supports. BYOK as always.</p>
<p><strong>16 chart types</strong></p>
<p>We expanded the visualization options significantly: bar, horizontal bar, line, area, combo (dual-axis), scatter, bubble, histogram, heatmap, pie, donut, funnel, waterfall, KPI card, trend, gauge, progress bar,<br>
and sparkline. The picker is now organized by category (Charts, Distribution, Part of Whole, Single Value) which makes it easier to find what you need.</p>
<p><strong>Interactive results</strong></p>
<p>Query results are no longer just a static table:</p>
<ul>
<li>Right-click any cell to quick-filter results (equals, not equals, greater than, LIKE, IS NULL, etc.)</li>
<li>Right-click column headers to sort ascending/descending</li>
<li>Hover on a column header to see statistics — min, max, avg, median, distinct count, and a histogram</li>
<li>Active filters and sorts show as dismissible chips above the results</li>
</ul>
<p>These are applied as CTEs on top of your query, so the original SQL stays untouched.</p>
<p><strong>Dashboard filters</strong></p>
<p>Dashboards now support interactive filter widgets — dropdowns, date pickers, text inputs, date ranges. You map them to query variables per card, and they reflect in URL query parameters so filtered views are bookmarkable and shareable. Works on both the editor and public dashboards.</p>
<p>We also redesigned the website to better showcase all the new features — check it out at <a href="https://lotus.typhoon.works/" rel="noopener nofollow ugc">lotus.typhoon.works</a> with demo videos of the main capabilities.</p>
<p>And we now have a Discord if you want to chat, ask questions, or share what you’re building: <a href="https://discord.gg/qnvcdjvw" rel="noopener nofollow ugc">discord.gg/qnvcdjvw</a></p>
<p>We’ve been getting issues and PRs from people using Lotus in production and it’s been incredibly motivating. We’d love more of that — whether it’s bug reports, feature ideas, or contributions. Come help us shape where this goes.</p>
<p><a href="https://github.com/typhoonworks/lotus" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/typhoonworks/lotus</a></p>
<p><a href="https://github.com/typhoonworks/lotus_web" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/typhoonworks/lotus_web</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="384703" data-batch-url="/posts/batch_likers">
                        3
                      </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/lotus-lightweight-sql-query-runner-and-storage-for-phoenix-apps/72229/51">Post #50</a>
	                </div>
	            </div>
              <div id="likers-container-384703" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="384703"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>