<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mariano Gongora</title>
    <description>The latest articles on Forem by Mariano Gongora (@mariano_gongora_ee3aff3bd).</description>
    <link>https://forem.com/mariano_gongora_ee3aff3bd</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3082012%2F68ef8a97-6c9a-4c25-87c5-68ecbf2bbde4.jpg</url>
      <title>Forem: Mariano Gongora</title>
      <link>https://forem.com/mariano_gongora_ee3aff3bd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mariano_gongora_ee3aff3bd"/>
    <language>en</language>
    <item>
      <title>SkyRulers – AI-Powered Drone Parts Ordering with Fine-Grained Access Control</title>
      <dc:creator>Mariano Gongora</dc:creator>
      <pubDate>Mon, 05 May 2025 06:58:34 +0000</pubDate>
      <link>https://forem.com/mariano_gongora_ee3aff3bd/skyrulers-ai-powered-drone-parts-ordering-with-fine-grained-access-control-2o6c</link>
      <guid>https://forem.com/mariano_gongora_ee3aff3bd/skyrulers-ai-powered-drone-parts-ordering-with-fine-grained-access-control-2o6c</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/permit_io"&gt;Permit.io Authorization Challenge&lt;/a&gt;: AI Access Control&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Built
&lt;/h2&gt;

&lt;h1&gt;
  
  
  🚀 SkyRulers – AI-Powered Drone Parts Ordering with Fine-Grained Access Control
&lt;/h1&gt;

&lt;p&gt;We built an e-commerce web app who's workflows from making an order to receiving confirmation all are controlled by AI! We leveraged React for a beautiful and responsive front end and spring boot for an AI powered back end. However when AI is the back-bone of your back-end there needs to be some safeguards. Keep reading to see how we accomplished this! &lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 Authorization with Permit.io
&lt;/h2&gt;

&lt;p&gt;SkyRulers integrates &lt;strong&gt;&lt;a href="https://www.permit.io/" rel="noopener noreferrer"&gt;Permit.io&lt;/a&gt;&lt;/strong&gt; for robust &lt;strong&gt;RBAC (Role-Based Access Control)&lt;/strong&gt; to securely manage actions performed by human users and AI agents in the ordering workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  👤 User Authorization Model
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🧑‍💼 Supervisor &lt;em&gt;(Auto-approved for this demo)&lt;/em&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Permissions:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Approve or reject part substitutions.&lt;/li&gt;
&lt;li&gt;View all emails and order history.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Capabilities:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manage Orders:&lt;/strong&gt; Approve or reject orders and substitutions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review Substitutions:&lt;/strong&gt; Approve or modify suggested part substitutions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor Emails:&lt;/strong&gt; Track all emails related to orders and substitutions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit Logs:&lt;/strong&gt; Access logs for full accountability.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🧑 Client (User)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Permissions:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Approve quotes.&lt;/li&gt;
&lt;li&gt;Place orders.&lt;/li&gt;
&lt;li&gt;Interact with order-related emails.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Restrictions:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;❌ Cannot modify orders or substitutions directly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Capabilities:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Approve Quotes:&lt;/strong&gt; Accept or reject final quotes sent by the system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track Orders:&lt;/strong&gt; View status and history of past orders.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email Interaction:&lt;/strong&gt; Respond to order and quote emails.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤖 AI Agent Authorization Model
&lt;/h2&gt;

&lt;p&gt;Each AI agent in the system has a distinct role with tightly scoped permissions.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧠 &lt;strong&gt;PartPickerAI&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Parses emails and suggests part substitutions.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Permissions:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;read_emails&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;suggest_substitution&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;send_emails&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🧠 &lt;strong&gt;ApprovalAgent&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Handles approval workflow initiation and communication.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Permissions:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;read_emails&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;suggest_substitution&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;initiate_approval_workflow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;send_emails&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🤖 &lt;strong&gt;BuilderBot&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Finalizes orders after necessary approvals.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Permissions:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;read_emails&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;send_emails&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;create_order&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;modify_orders&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🧩 AI Capabilities Explained
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Capability&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;read_emails&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Can access and parse order-related emails.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;send_emails&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sends notifications: substitutions, approvals, and confirmations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;suggest_substitution&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Proposes alternative parts when requested ones are unavailable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;create_order&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Finalizes and submits orders post-approval.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;initiate_approval_workflow&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Triggers supervisor/client approval workflows.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🔁 Workflow Diagram
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://app.diagrams.net/#G1E_f0FxF3U4XU23mvYPOPye0IeNoy8cXz#%7B%22pageId%22%3A%22jNlKdp63iCFvfioK3i8F%22%7D" rel="noopener noreferrer"&gt;📊 View the full workflow diagram →&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Example Authorization Workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Order Request&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;PartPickerAI&lt;/code&gt; receives an email → parses it and suggests substitutions.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ApprovalAgent&lt;/code&gt; reads and sends the substitution to the Supervisor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Supervisor Approval&lt;/strong&gt; &lt;em&gt;(Auto-approved in this build)&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Approves or rejects substitutions.&lt;/li&gt;
&lt;li&gt;Approved orders move forward.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Client Approval&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;BuilderBot&lt;/code&gt; generates a quote and sends it via email.&lt;/li&gt;
&lt;li&gt;Client must approve it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Finalize Order&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once approved, &lt;code&gt;BuilderBot&lt;/code&gt; finalizes the order and sends confirmation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  ⚙️ Permit.io Implementation Summary
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: Due to time constraints and limited Java SDK documentation, some features are pending full integration.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  ✅ What’s Implemented:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Basic Permit.io integration in AI agent services.&lt;/li&gt;
&lt;li&gt;Authorization checks for inventory access.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔧 Planned Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Full enforcement of role-based permissions.&lt;/li&gt;
&lt;li&gt;Real-time permission updates from Permit.io dashboard.&lt;/li&gt;
&lt;li&gt;Dynamic AI access control.&lt;/li&gt;
&lt;li&gt;Detailed audit logging for AI and human actions.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📌 Permit.io Setup Steps (Summary)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create Roles in Permit.io Dashboard&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;supervisor&lt;/code&gt;, &lt;code&gt;client&lt;/code&gt;, &lt;code&gt;PartPickerAI&lt;/code&gt;, &lt;code&gt;ApprovalAgent&lt;/code&gt;, &lt;code&gt;BuilderBot&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Define Permissions&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use Permit.io’s policy builder to assign granular capabilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enforce Permissions in Code&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using Permit SDK’s &lt;code&gt;.check()&lt;/code&gt; method to gate critical actions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enable Audit Logs&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Activate logging for transparency and traceability.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  📬 Feedback &amp;amp; Contributions
&lt;/h2&gt;

&lt;p&gt;Pull requests welcome! If you have suggestions or improvements for integrating advanced AI authorization in Java using Permit.io, feel free to contribute.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔗 Related Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.permit.io/integrate/sdks/backend/java" rel="noopener noreferrer"&gt;Permit.io Java SDK Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://spring.io/guides/gs/spring-boot/" rel="noopener noreferrer"&gt;Spring Boot Starter Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.google.com/vertex-ai/docs/generative-ai/start/quickstarts/quickstart-java" rel="noopener noreferrer"&gt;Gemini AI for Java&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Project Repo
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/albajarazeth" rel="noopener noreferrer"&gt;
        albajarazeth
      &lt;/a&gt; / &lt;a href="https://github.com/albajarazeth/smart-order-system-ai-access-control" rel="noopener noreferrer"&gt;
        smart-order-system-ai-access-control
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Smart Order System – AI-Powered Parts Ordering with Access Control
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🚀 SkyRulers – AI-Powered Drone Parts Ordering with Fine-Grained Access Control&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🔐 Authorization with Permit.io&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;SkyRulers integrates &lt;strong&gt;&lt;a href="https://www.permit.io/" rel="nofollow noopener noreferrer"&gt;Permit.io&lt;/a&gt;&lt;/strong&gt; for robust &lt;strong&gt;RBAC (Role-Based Access Control)&lt;/strong&gt; to securely manage actions performed by human users and AI agents in the ordering workflow.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;👤 User Authorization Model&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🧑‍💼 Supervisor &lt;em&gt;(Auto-approved for this demo)&lt;/em&gt;
&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;&lt;strong&gt;Permissions:&lt;/strong&gt;&lt;/h4&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Approve or reject part substitutions.&lt;/li&gt;
&lt;li&gt;View all emails and order history.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;&lt;strong&gt;Capabilities:&lt;/strong&gt;&lt;/h4&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manage Orders:&lt;/strong&gt; Approve or reject orders and substitutions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review Substitutions:&lt;/strong&gt; Approve or modify suggested part substitutions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor Emails:&lt;/strong&gt; Track all emails related to orders and substitutions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit Logs:&lt;/strong&gt; Access logs for full accountability.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🧑 Client (User)&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;&lt;strong&gt;Permissions:&lt;/strong&gt;&lt;/h4&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Approve quotes.&lt;/li&gt;
&lt;li&gt;Place orders.&lt;/li&gt;
&lt;li&gt;Interact with order-related emails.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;&lt;strong&gt;Restrictions:&lt;/strong&gt;&lt;/h4&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;❌ Cannot modify orders or substitutions directly.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;&lt;strong&gt;Capabilities:&lt;/strong&gt;&lt;/h4&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Approve Quotes:&lt;/strong&gt; Accept or reject final quotes sent by the system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track Orders:&lt;/strong&gt; View status and history of past orders.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email Interaction:&lt;/strong&gt; Respond to order and quote emails.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🤖 AI Agent Authorization Model&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Each…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/albajarazeth/smart-order-system-ai-access-control" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

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

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

&lt;p&gt;TEAM MEMBERS: &lt;a class="mentioned-user" href="https://dev.to/albajarazeth"&gt;@albajarazeth&lt;/a&gt;,&lt;a class="mentioned-user" href="https://dev.to/mariano_gongora_ee3aff3bd"&gt;@mariano_gongora_ee3aff3bd&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>permitchallenge</category>
      <category>webdev</category>
      <category>security</category>
    </item>
  </channel>
</rss>
