Surrealist Documentation
repository·main·Indexed 23 days ago
https://github.com/surrealdb/surrealistA visual management interface for SurrealDB available as a Web and Desktop App. Surrealist provides tools for visual querying with graph visualization, schema design, data exploration, and integrated SurrealDB Cloud management. Key features include GraphQL querying support, an AI assistant for query writing, and the ability to manage authentication at root, namespace, and database levels.
What's inside Surrealist
- Surrealist is a visual user interface for interacting with SurrealDB databases. It allows developers to connect to SurrealDB instances to execute queries, explore tables, design schemas, and manage database resources. It is available as both a Web App and a Desktop App.
Key features of Surrealist
mainSurrealist provides several tools for database management and development:
- Visual Querying: Query View with syntax highlighting, saved queries, and graph visualization.
- Data Exploration: Explorer View for browsing tables, inspecting records, and following relationships.
- Schema Designing: Designer View for visual schema diagrams and creation.
- AI Assistance: 'Ask Sidekick' AI assistant for writing queries and designing schemas.
- Management: Integrated SurrealDB Cloud management panel, database access rules, user accounts, and resource permissions.
- Advanced Capabilities: GraphQL querying support, SurrealML model uploads, auto-generated API documentation, and stored procedure/function management.
Initialize database with demo dataset
mainWhen setting up a new environment, you can now use the option to initialise any empty database with a demo dataset.Execute GraphQL queries in Surrealist
mainSurrealist 3.0 introduces a dedicated GraphQL view. You can use this view to execute GraphQL queries against your database. It includes features such as:
- Live query validation and error checking.
- Full GraphQL syntax highlighting.
- Full support for query variables.
Manage SurrealDB Cloud via Surrealist
mainSurrealist includes an integrated management panel for SurrealDB Cloud. This allows you to:
- Provision and connect to Cloud instances.
- Manage billing.
- Monitor usage.
The Cloud management panel is accessible in both the Web and Desktop applications.
Manage Namespaces and Databases via Toolbar
mainSurrealist 3.0 allows for more flexible connection management:
- Connect to an instance without immediately selecting a namespace or database.
- Switch namespaces and databases on-the-fly.
- Create and remove namespaces and databases directly from the toolbar.
Get started with Surrealist Web App
mainThe Web App is the quickest way to start using Surrealist directly in your browser. Visit the following URL to begin:
Manage Authentication in Surrealist 3.0
mainThe Authentication view has been overhauled to be compatible with SurrealDB 2.0. You can manage system users and access methods at three different levels:
- Root level
- Namespace level
- Database level
Authentication can be configured through redesigned editor dialogs.
Get started with Surrealist Desktop App
mainThe Desktop App is the recommended way to interact with SurrealDB as it supports additional features not available in the web version, such as:
- Local database serving
- Opening queries directly from your disk
You can download the latest version from the official download page or via the GitHub releases page.
Configure Database Serving Console
mainYou can customize the following settings for the database serving console:
- History size
- Log level
Important considerations for Surrealist connections
mainWhen using Surrealist, keep the following in mind:
- Version Compatibility: Surrealist aims to support the latest stable releases of SurrealDB. Support for nightly builds is not guaranteed.
- Remote Connections: Connecting to remote servers may require an HTTPS connection. You can configure SSL for your server using tools like
letsencryptandnginx.
Identify the current environment with type guards
mainSurrealist exports boolean constants that allow you to check which environment the current adapter belongs to. These are useful for conditional logic in your application (e.g., showing different UI components for Desktop vs. Browser).
isDesktop:trueif usingDesktopAdapter.isBrowser:trueif usingBrowserAdapter.isDocker:trueif usingDockerAdapter.isMini:trueif usingMiniAdapter.