Execution Modes

NeoSQL can be used in three modes: Online (Web), Online (Desktop), and Offline. Choose the mode that fits your environment.

Mode Overview

Online (Web)

Use directly in your browser. Cloud sync enables team collaboration after OAuth login. Only public DBs can be connected.

Online (Desktop)

Desktop app + cloud sync. Connect to internal network DBs, local DBs, and databases behind VPNs, and collaborate with your team.

Offline NEW

Use on desktop without internet. Connect directly to internal network DBs, local DBs, and databases behind VPNs. Ideal for air-gapped environments. Authenticate with a license key.

Feature Comparison

Compare available features across modes at a glance.

FeatureOnline (Web)Online (Desktop)Offline
Core Features
ERD Design / EditYesYesYes
SQL EditorYesYesYes
Code Generation In DevYesYesYes
Forward / Reverse EngineeringYesYesYes
DB Connection
Public DB ConnectionYesYesNo
Internal / Local DB ConnectionNoYesYes
Collaboration & Cloud
Team Collaboration (Real-time Sync)YesYesNo
Project Sharing / InviteYesYesNo
Cloud BackupYesYesNo
Additional Features
AI FeaturesYesYesNo
Template Store (Download/Upload)YesYesNo
Tip

Use the desktop app if you need to connect to internal network DBs, local DBs, or databases behind VPNs or firewalls.

Note: Projects created in offline mode cannot be converted to online mode later. Choose the appropriate mode from the start.

Start Online Mode

Online mode uses OAuth social login for authentication. Available in both web browser and desktop app.

1

Launch App

Access the NeoSQL web app or launch the desktop app.

2

Social Login

Log in with Google, GitHub, or other social accounts on the login screen. On desktop, authentication happens in the browser and auto-connects to the app.

3

Select Project

After authentication, you'll be navigated to the dashboard. Your project list is displayed, and you can create a new project or select an existing one.

Team Invite & Management (Online Only)

Invite team members and manage roles in online mode.

Invite Team Members

1

Open Share Settings

Click the share button in the project editor toolbar to open project share settings.

2

Enter Email

Enter the email of the team member to invite. Separate multiple emails with commas (,).

3

Select Role & Send Invite

Select a role and send the invitation. An email will be sent to the invited user.

4

Accept Invitation

When the team member clicks the invite link in the email, they join the project automatically after login.

Team Invite & Management (Online Only)

Roles & Permissions

Four roles can be assigned to project members.

RoleInvite MembersChange RoleRemove MemberTransfer Ownership
OwnerManager, DBA, MemberAll membersAll membersYes
ManagerDBA, MemberNoDBA, MemberNo
DBANoNoNoNo
MemberNoNoNoNo

Role-based feature permissions

Beyond member management, each role's actions in the project are controlled by permission flags. The defaults at project creation are:

PermissionManagerDBAMember
Sharing (invite members / edit share settings)YesNoNo
Connection management (read / add / edit / delete)YesYesNo

The owner can also toggle the following per-role options:

  • Watermark force — Forces the watermark to remain on when this role prints an ERD; they cannot disable it.
  • DDL restrict — Blocks this role from creating, editing, or deleting tables.
  • DDL approver — When the DDL approval workflow is enabled, designates which role approves pending DDL statements.
Tip

These defaults can be changed at any time by the project owner via the "Project Settings → Role Permissions" tab.

Share modal layout

The project share modal is divided into two areas.

  • Members list — Every person who has accepted an invite and currently belongs to the project. Each row shows the name/email and a role badge; users with the right permission can change a member's role or remove them from the right-hand menu.
  • Pending invitations — Invites that have been sent but not yet accepted. Visible only to the owner and only when at least one invitation is pending. Clicking the X button on the right of an entry opens a confirmation dialog that includes the invitee's email — for example "Cancel the invitation sent to invitee@example.com?" — and clicking OK cancels the invitation immediately. Once accepted, an invitation automatically moves into the members list; expired or cancelled invitations no longer appear in the modal.

Manage Members

Manage current project members in the Members tab of share settings.

  • View each member's role and last access time in the member list.
  • Owner or Manager can change member roles or remove them from the project.
  • Owner can transfer ownership to another member.
  • Non-owner members can leave the project on their own.
Tip

Owner or Manager can configure project visibility (Public/Members Only) and copy permissions in the Settings tab.

Self-Issue Offline Key NEW

A license key is required to use offline mode. Users on the Pro plan or above can issue keys directly from the My Page on the web.

Prerequisite You must be subscribed to a plan that includes offline key issuance (Pro or above). The offline key menu is disabled on the Free and Basic plans.

1

Go to My Page

Log in to the NeoSQL website, then navigate to My Page > Offline Key.

Go to My Page
2

Issue Key

Click the "Issue" button on an empty slot. Enter the JDBC URLs you want to access offline, then complete the issuance.

Issue Key
3

Download Key File

Click the "Download Key File" button on the issued slot card to download the license key file in JSON format.

complete

Key Renewal

Issued keys expire after 30 days. Renewal is available starting 3 days before expiration. You can also change the JDBC URLs during renewal. After renewal, you must download the new key file again.

Note: Issued keys cannot be deleted and occupy the slot until expiration. Once downloaded, a key file remains valid until its expiration date.

Start Offline Mode NEW

Start NeoSQL in offline mode from the desktop app.

1

Launch App

Launch the NeoSQL desktop app.

2

Select Offline Mode

Click the "Start in Offline Mode" link at the bottom of the login screen.

Select Offline Mode
3

Enter License Key

Enter your issued license key. If you have a JSON key file from My Page self-issuance, you can drag & drop or upload the file to auto-fill the form.

4

Configure License Parameters

Click the "Add" button to auto-generate default parameters. Enter values according to your license.

ParameterDescriptionExample
JDBC_URLJDBC connection URLs allowed in offline mode (multiple entries allowed)jdbc:mariadb://db.example.com:3306/mydb
EXPIRED_DTLicense expiration date2026-12-31 23:59:59
LOGIN_IDOffline user identification IDuser@company.com
Tip

Check "Remember" to save the license key and parameters locally for auto-fill on next launch.

5

Authentication Complete

Click "Authenticate". Once the license is validated, you'll navigate to the project selection screen.

Start Offline Mode

Note: When the license expires, the session ends automatically. Re-authenticate with a renewed license key.

Offline Project Management NEW

In offline mode, projects are managed on the local file system.

Create New Project

1

Click Create Button

Click the "New Database Project" button on the project management screen.

2

Select Directory

Click the "Search..." button in the Location field to select a project directory.

3

Configure & Save

Set the project name and DBMS, then click "Save". A .neosql/ folder will be auto-created in the selected directory.

Create New Project

Import Existing Project

1

Click Import Button

Click the "Import Project" button on the project management screen. (Only shown in offline mode)

2

Select Project Directory

Select a directory containing an existing .neosql/ folder. If project-config.json is detected, the project settings will be loaded automatically.

Tip

Commit the .neosql/ directory to Git to share project settings (ERD, table definitions, connection info) across team members. Each member can clone the repository and use "Import Project" to work in the same environment.

Data Storage

Online Mode

Project data is automatically synchronized to the cloud. Sync starts automatically when a project is opened — no manual save needed.

Note: Even if the network is temporarily disconnected, work continues with local data. Sync resumes automatically when the network is restored.

Offline Mode

All data is stored as JSON files in the .neosql/ folder within the project directory.

{project-root}/.neosql/
├── project-config.json                        # Project settings (name, DBMS, template pack, etc.)
├── connections/                               # DB connection info
│   └── {connectionId}_{connectionName}/       # Per-connection directory
│       ├── connection.json                    # Connection settings (host, port, driver, etc.)
│       └── {schemaName}/                      # Per-schema directory
│           ├── {tableName}.json               # Table definition (columns, indexes, FKs, etc.)
│           └── {tableName}_entity.json        # Java Entity mapping info
├── erd/                                       # ERD diagrams
│   └── {erdId}.json                           # ERD definition (nodes, edges, layout, etc.)
└── sql/                                       # SQL Editor saves
    └── {sqlId}.json                           # SQL script (query body, metadata)

Sensitive credentials (DB passwords, SSH keys, etc.) are not stored in .neosql/ but encrypted in the OS secure storage. This means committing .neosql/ to Git is safe — passwords are not included, and credentials are stored individually on each team member's PC.

Data Portability

The execution mode is decided when a project is created and cannot be switched afterward. However, the offline mode's .neosql/ folder is a fully portable bundle — share it with another machine or teammate and the same project can be reconstructed.

Why modes can't be converted

Offline mode uses the local file system (.neosql/ folder) while online mode uses PouchDB ↔ CouchDB sync, so the storage backends are fundamentally different. An offline project cannot be uploaded to the cloud, and an online project cannot be downloaded for use in an air-gapped network. If you need to switch environments, create a new project in the target mode and migrate ERD/SQL definitions separately.

Sharing an offline project with a team

The offline .neosql/ folder is plain-text JSON, and sensitive credentials (DB passwords, SSH keys, etc.) are not stored there — they live in the OS secure storage. That means committing .neosql/ to a Git repository lets the team share ERDs, table definitions, and SQL scripts without leaking secrets.

  1. The project owner commits and pushes the .neosql/ folder inside the project directory to Git.
  2. Teammates clone the same repository.
  3. Each teammate uses "Import Project" in NeoSQL Desktop to pick the directory containing .neosql/ — the same ERD and SQL workspace appears.
  4. Each teammate enters the DB password into their own OS keychain — credentials never leave the local machine, so the shared repo stays safe.