Analytics
This introduces a comprehensive system for tracking analytics events throughout the foundation-comms package. It uses a typed event system and a configurable analytics instance to provide detailed insights into user interactions and navigation within the application.
Authentication
This provides a comprehensive interface for authentication management within a Genesis Server endpoint environment. It encapsulates the entire authentication flow, from login to logout, including session management and user state observability.
Credential management
This introduces a versatile system for managing user credentials within the application. It supports various authentication methods, including basic authentication, refresh tokens, and Single Sign-On (SSO), alongside utilities for credential validation, normalization, storage, and retrieval.
Criteria builder
The CriteriaBuilder is a utility class designed to build objects used in creating query criteria in a Groovy expression format. These criteria can be used in requests to back-end services.
Criteria Overview
The FoundationUI framework has several components that communicate directly with the backend. The Grids, Charts components take a resourceName parameter which specifies the service. The Connect class snapshot and stream methods can also be used to get data from the backend.
Datasource
This provides an interface for interacting with different types of data sources within the application. It abstracts the complexities of fetching, streaming, and manipulating data from various back-end services.
Expression builder
The ExpressionBuilder is a utility class to build criteria objects that are used with the CriteriaBuilder.
Genesis Connect
Genesis Connect encapsulates the functionality for establishing and managing connections between a client and a server, particularly focusing on a WebSocket connection for real-time communication in a Genesis server environment. This detailed guide aims to elucidate the various components, functionalities, and usage patterns of the @Connect service, including interactions with related types and services.
Metadata management
This provides a robust system for handling metadata and JSON schemas associated with resources, facilitating the interpretation, validation, and utilization of resource definitions across applications. It includes a caching mechanism to optimize performance by reducing the need to fetch metadata and schemas repetitively.
Serialisers
Serialisers are utility functions for creating Groovy expressions for different operators, such as greater than, less than, equals, etc.
Session management
There is a comprehensive approach to managing user session data, using browser storage mechanisms to persist user authentication states, preferences, and other session-specific information. It provides a unified interface to interact with both local storage and session storage, making it easy to store and retrieve session data.
Storage (key-value)
The Genesis Application Platform provides a versatile Key-Value (KV) storage system for managing data within the application, abstracting over the specifics of the underlying storage technology to offer a unified API for data operations. This feature enables you to interact with the KV storage seamlessly, performing CRUD operations such as inserting, updating, retrieving, and deleting data items.
Testing utilities
The Genesis Application Platform provides a collection of utilities, mocks, and helpers designed to facilitate effective and streamlined testing of web applications. This documentation outlines the key components and provides examples that demonstrate their use in testing scenarios.
User management
The Genesis Framework provides a robust solution for managing user access and roles. This includes a structured approach to managing user data, permissions, and profiles. This is implemented through the User interface and CurrentUser class, providing a system to manage user roles and access within applications effectively.
Utilities
The Genesis Framework includes various utility functions to facilitate common operations within web applications. These utilities are designed to enhance the development process, making it more efficient and streamlined.