Skip to content
View vzakharchenko's full-sized avatar

Organizations

@forge-sql-orm

Block or report vzakharchenko

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vzakharchenko/README.md

Hi, I'm Vasyl 👋 GitHub User's stars

I'm a full-stack engineer and security researcher focused on platform architecture, developer tooling, and multi-tenant systems. Speaker and 1st Place Winner of Atlassian Codegeist 2025.

Metrics

🏆 Recognition & Speaking

  • 🏆 1st Place Winner, Atlassian Codegeist 2025: Won the top prize with Secure Notes for Jira, an enterprise-grade Zero Trust application. Built a custom Drizzle-based ORM for Forge SQL to handle complex audit logs and strict B2B security requirements. ➡️ View winning submission on Devpost
  • 🎤 Speaker, Atlassian Atlas Camp 2026: Presented "Making Forge SQL Observable". Shared deep technical insights on handling Out-of-Memory (OOM) and Timeout errors in multi-tenant enterprise environments, analyzing TiDB execution plans, and optimizing complex queries for large-scale customers.

⚙️ What I do

  • Design systems with a focus on trust boundaries and edge cases
  • Explore platform internals (e.g., Atlassian Forge)
  • Build developer tooling for complex distributed systems
  • Research and report security issues in multi-tenant platforms

🚀 Core Project

🔹 forge-sql-orm — Enterprise ORM for Atlassian Forge SQL

forge-sql-orm is a Drizzle-based ORM built for reliable, production-grade Atlassian Forge apps. It addresses a key gap in the Forge ecosystem where no native ORM layer exists.

Designed to handle complex Forge SQL patterns such as:

  • caching
  • optimistic locking
  • query observability and diagnostics
  • schema generation and migrations
  • safe query construction for multi-tenant environments
  • vector search and semantic retrieval patterns for AI-powered Forge apps

The project is actively used in the Forge ecosystem and has become one of the most visible community solutions for teams building serious apps on Forge SQL.

📦 npm: npm downloads

➡️ GitHub: https://github.com/forge-sql-orm/forge-sql-orm

🔹 Keycloak Radius Plugin — Embedded RADIUS Server for SSO

An advanced extension for Keycloak that embeds a fully functional RADIUS server directly into the authentication flow.

  • Enables RADIUS authentication using Keycloak identities (OIDC, LDAP, Kerberos)
  • Supports OTP (TOTP/HOTP), WebAuthn (FIDO2), and multi-factor authentication
  • Includes RadSec (RADIUS over TLS) and RADIUS proxy capabilities
  • Designed for multi-tenant environments with dynamic attribute mapping
  • Integrates with network systems (Mikrotik, Cisco, VPNs, hotspot authentication)

➡️ https://github.com/vzakharchenko/keycloak-radius-plugin

🧩 Architecture Patterns & Platform Work

🔹 Connect → Forge Runtime Migration Layer (atlassian-runtime-bridge)

atlassian-runtime-bridge is a Spring Boot architecture layer for migrating Atlassian Connect apps to Forge Remote and Forge Containers without rewriting the service layer.

It separates product access, tenant identity, and runtime authentication behind shared adapters, allowing the same application logic to run across:

  • legacy Connect iframe / JWT flows
  • Forge Remote invocation context
  • Forge Containers with the egress sidecar model

The project focuses on practical migration problems: moving from clientKey to cloudId, avoiding domain coupling to Connect’s AtlassianHost table, preserving a shared service layer, and keeping Connect, Forge Remote, and Container runtimes isolated at the configuration level.

📘 Read the discussion: ➡️ https://community.developer.atlassian.com/t/migrating-a-connect-spring-boot-app-to-forge-remote-and-containers-without-rewriting-your-service-layer/100846

🔹 Forge SQL Observability — Safe Query Profiling Pattern

A practical observability pattern for analyzing SQL performance inside Atlassian Forge apps without breaking platform constraints.

The approach focuses on deterministic, Forge-safe diagnostics:

  • Aggregating total DB execution time per invocation (dbExecutionTime)
  • Identifying the slowest queries instead of relying on non-deterministic system tables
  • Optional EXPLAIN ANALYZE re-execution for targeted queries
  • Safe fallback strategies when metadata is evicted in long-running functions
  • Post-mortem diagnostics for Timeout and Out-of-Memory (OOM) failures

Key idea: Instead of relying on unstable information_schema windows, the pattern captures and analyzes queries at the application layer, making observability predictable even under strict Forge limits.

This approach is implemented in forge-sql-orm and complements platform-level observability with developer-controlled diagnostics.

I presented this pattern at Atlassian Atlas Camp 2026 in the talk "Making Forge SQL Observable", covering practical diagnostics for slow queries, Timeout errors, and Out-of-Memory (OOM) failures in Forge SQL.

🎬 Watch the full presentation: YouTube

📘 Read the discussion: ➡️ https://community.developer.atlassian.com/t/practical-sql-observability-for-forge-apps-with-forge-sql-orm/97237

🔹 Forge-Native Semantic Search — Local Embeddings + Forge SQL Vector Search

A practical architecture pattern for building semantic search and RAG-style retrieval inside Atlassian Forge while staying aligned with the Runs on Atlassian model.

The approach uses local embeddings generated in Forge Custom UI or inside a Forge resolver, stores them in Forge SQL as TiDB VECTOR(384), and performs similarity search directly with VEC_COSINE_DISTANCE.

Key idea: Instead of sending content to an external AI service for retrieval, the app keeps the semantic search flow inside the Forge app and Forge SQL, making it more controlled, portable, and platform-friendly.

📘 Read the article: https://community.developer.atlassian.com/t/ai-magic-in-atlassian-forge-local-semantic-search-with-forge-sql/97256

🧩 Working examples: client-side embeddings · backend embeddings

🔹 Rovo + Forge SQL — Secure Pattern for Natural-Language Analytics

A practical security pattern for connecting Rovo with Forge SQL in apps that support natural-language analytics.

The approach treats AI-generated SQL as untrusted input and validates it through multiple independent layers before execution:

  • AST pre-check to allow only a single read-only query against the intended table
  • EXPLAIN plan verification to ensure the query does not touch unexpected tables
  • Post-execution metadata validation to confirm returned fields originate only from the allowed table
  • Dynamic context injection for values like :currentUserId, :projectKey, and :issueKey
  • Dynamic row-level security (RLS) for per-user access control in multi-tenant apps

This pattern was later packaged into forge-sql-orm as a reusable “Guard” executor for secure Rovo → SQL integrations.

📘 Read the discussion: ➡️ Rovo + Forge SQL: A Secure Pattern for Natural-Language Analytics in Forge Apps

🔹 Inbound Integration Pattern — Runs on Atlassian Safe Architecture

An architectural approach for integrating external services into Atlassian Forge apps without breaking the “Runs on Atlassian” model.

The pattern uses route.navigate and static web triggers to enable inbound-only communication, ensuring all execution remains inside Atlassian’s trusted environment. It was confirmed by Atlassian Staff as fully aligned with Forge’s design principles.

📘 Read the discussion: ➡️ Integrating External Services in Atlassian Forge

🧠 Implementation demo: ➡️ Forge Health Monitor


🔹 Keycloak API Gateway — Secure Multi-Tenant Access Layer

A gateway layer built on top of Keycloak for protecting and serving static or dynamic resources in multi-tenant environments.

It provides a role-based access control layer for JavaScript bundles, APIs, and files, working across Express, Lambda@Edge, and serverless deployments. Supports realm- and tenant-based routing, dynamic resource mapping, and pluggable storage backends (InMemory, DynamoDB, etc.).

📘 Project: ➡️ keycloak-api-gateway

🧩 Examples:


📝 Featured

📘 Published on the Atlassian Developer Blog

📘 Community article: Local Semantic Search in Atlassian Forge

🧩 Working examples:

📰 More articles on Dev.to: ➡️ @vzakharchenko


📫 Where to find me


skyline

Pinned Loading

  1. keycloak-radius-plugin keycloak-radius-plugin Public

    Make the radius server as part of keycloak SSO

    Java 247 48

  2. rtsp-samsung-tv rtsp-samsung-tv Public

    Display RTSP streams from IP Cameras on Samsung Smart TV (Tizen TV)

    JavaScript 130 26

  3. keycloak-lambda-authorizer keycloak-lambda-authorizer Public

    Keycloak adapter for Cloud

    TypeScript 41 16

  4. keycloak-api-gateway keycloak-api-gateway Public

    Login flow gateway through Keycloak for static Web resources(bundle.js, images, pdf etc...)

    TypeScript 10 6

  5. forge-sql-orm/forge-sql-orm forge-sql-orm/forge-sql-orm Public

    Seamlessly integrate Drizzle ORM with Forge-SQL to enable type-safe database operations in your Atlassian Forge applications. Includes a custom driver, schema migration support, two levels of cachi…

    TypeScript 26 1

  6. remote-ctrl-gsm remote-ctrl-gsm Public

    Mitsubishi Outlander PHEV remote control over Mobile Network (3g, 4g, LTE)

    Smali 21 7