calljmp library

The Calljmp Flutter SDK provides secure backend-as-a-service capabilities for mobile developers.

This SDK offers:

  • Authentication via App Attestation (iOS) and Play Integrity (Android)
  • Full SQLite database access with no restrictions
  • Real-time database subscriptions and custom pub/sub messaging
  • Dynamic permissions for users and roles
  • Seamless Flutter integration

Getting Started

import 'package:calljmp/calljmp.dart';

final calljmp = Calljmp();

// Type-safe database operations
final users = await calljmp.database.query(
  sql: 'SELECT * FROM users WHERE age > ?',
  params: [21],
);

// Real-time database subscriptions
final subscription = await calljmp.database.observe<User>('users.insert')
  .onInsert((event) {
    print('New users: ${event.rows}');
  })
  .filter(DatabaseGtFilter('age', 18))
  .subscribe();

// Real-time pub/sub messaging
final rtSubscription = await calljmp.realtime.observe<Message>('chat.room1')
  .onData((event) {
    print('Message: ${event.data}');
  })
  .filter(RealtimeEqFilter('room_id', 'room123'))
  .subscribe();

For more information, visit calljmp.com

Classes

AccessToken
Represents a parsed and validated access token (JWT) for API authentication.
Auth
Provides authentication challenge and state clearing methods.
Bucket
Represents a storage bucket in the Calljmp system.
BucketFile
Represents a file stored in a bucket.
Calljmp
The main Calljmp client that provides access to all SDK functionality.
Config
SDK configuration options for Calljmp Flutter SDK.
Database
Provides direct SQLite database access with no restrictions.
DatabaseAndFilter
Logical AND filter
DatabaseDeleteEventData
Database delete event data
DatabaseEqFilter
Equality filter
DatabaseFilter
Database filter conditions
DatabaseGteFilter
Greater than or equal filter
DatabaseGtFilter
Greater than filter
DatabaseInFilter
In filter for multiple values
DatabaseInsertEventData<T>
Database insert event data
DatabaseLikeFilter
Like filter for pattern matching
DatabaseLteFilter
Less than or equal filter
DatabaseLtFilter
Less than filter
DatabaseNeFilter
Not equal filter
DatabaseNotFilter
NOT filter
DatabaseOrFilter
Logical OR filter
DatabaseSubscription
Database subscription interface
DatabaseSubscriptionOptions<T>
Database subscription options with type safety
DatabaseUpdateEventData<T>
Database update event data
Email
Provides email-based authentication methods for users.
Integrity
Manages device integrity verification and access token lifecycle.
Project
Provides project configuration and management functionality.
Provider
Realtime
Main Realtime class for pub/sub messaging
RealtimeAndFilter
Logical AND filter
RealtimeDataEvent<T>
Data event containing payload
RealtimeEqFilter
Equality filter
RealtimeErrorEvent
Error event
RealtimeEventHandler<T>
Type-safe event handler interface
RealtimeExistsFilter
Exists filter (checks if field exists)
RealtimeFilter
Filter conditions for realtime subscriptions
RealtimeGteFilter
Greater than or equal filter
RealtimeGtFilter
Greater than filter
RealtimeIlikeFilter
Case-insensitive like filter for pattern matching
RealtimeInFilter
In filter for multiple values
RealtimeLikeFilter
Case-sensitive like filter for pattern matching
RealtimeLteFilter
Less than or equal filter
RealtimeLtFilter
Less than filter
RealtimeNeFilter
Not equal filter
RealtimeNotFilter
NOT filter
RealtimeObserver<T>
Observer for setting up real-time subscriptions with type safety
RealtimeOrFilter
Logical OR filter
RealtimeRegexFilter
Regular expression filter
RealtimeSubscription
Real-time subscription interface
RealtimeSubscriptionConfig<T>
Type-safe subscription configuration
RealtimeSubscriptionOptions<T>
Subscription options with type safety
Service
Provides access to custom service endpoints.
Signal
Main Signal class for WebSocket-based real-time communication
SignalDatabaseDelete
Database delete message
SignalDatabaseInsert
Database insert message
SignalDatabaseMessage
Base class for database-specific data messages
SignalDatabaseSubscribe
Database subscribe message
SignalDatabaseUnsubscribe
Database unsubscribe message
SignalDatabaseUpdate
Database update message
SignalLock
Signal lock for managing component-specific connections
SignalMessage
Base class for all signal messages
SignalMessageAck
Acknowledgment message
SignalMessageData
Data message
SignalMessageError
Error message
SignalMessagePing
Ping message
SignalMessagePong
Pong message
SignalMessagePublish
Publish message
SignalMessageSubscribe
Subscribe message
SignalMessageUnsubscribe
Unsubscribe message
SignalResult
Result returned by signal message handlers
SignalResultOptions
Signal result options for controlling handler behavior
Storage
Provides file storage and management functionality.
User
Represents a user in the Calljmp system.
Users
Provides user management and authentication functionality.

Enums

DatabaseSubscriptionEvent
Database subscription event types
RealtimeObserverEvent
Event types for realtime observers
ServiceErrorCode
Enumeration of service error codes used throughout the Calljmp SDK.
SignalDatabaseEventType
SignalErrorCode
SignalMessageType
UserAuthenticationPolicy
Enum representing authentication policy for user creation/sign-in.
UserAuthenticationProvider
Enum representing supported email authentication providers.

Extension Types

DatabaseObservePath
Path-based type inference for database observers

Functions

createSignal(Config config) Signal
Create a Signal instance with proper configuration
databaseFilterToJson(DatabaseFilter filter) Map<String, dynamic>
Convert filter to JSON map
filterToJson(RealtimeFilter filter) Map<String, dynamic>
Convert filter to JSON map
parseSignalMessage(Map<String, dynamic> json) SignalMessage?
Helper function to parse signal messages from JSON

Typedefs

AndroidConfig = ({int? cloudProjectNumber})
Android-specific configuration options.
DatabaseDeleteHandler = FutureOr<void> Function(DatabaseDeleteEventData event)
DatabaseInsertHandler<T> = FutureOr<void> Function(DatabaseInsertEventData<T> event)
Type-safe event handlers for database operations
DatabaseRow = Map<String, dynamic>
Database row type
DatabaseRowId = int
Database row ID type
DatabaseTable = String
Database table name
DatabaseUpdateHandler<T> = FutureOr<void> Function(DatabaseUpdateEventData<T> event)
DevelopmentConfig = ({String? apiToken, String? baseUrl, bool? enabled})
Development environment configuration.
RealtimeDataHandler<T> = FutureOr<void> Function(RealtimeDataEvent<T> event)
Handler for realtime data events
RealtimeErrorHandler = FutureOr<void> Function(RealtimeErrorEvent event)
Handler for realtime error events
RealtimeTopic = String
Topic for real-time messaging
ServiceConfig = ({String? baseUrl})
Configuration for custom service endpoints.
SignalDatabaseRowId = int
SignalDatabaseTopic = String
Database-specific messages
SignalMessageHandler<T extends SignalMessage> = Future<SignalResult?> Function(T message)
Handler for signal messages

Exceptions / Errors

ServiceError
Exception class for service-related errors in the Calljmp SDK.