Session SDK
The Session SDK provides methods to manage user sessions and retrieve session analytics for your applications on the GetJar platform.
Initialization
import { Configuration, Session } from '@eightpointio/getjar-iap-sdk';
const config = new Configuration({
basePath: 'url',
headers: { 'x-api-key': 'key' }
});
const sessionClient = new Session(config);
Methods
createSession
Creates a new user session for an application.
Parameters:
payload(ICreateSessionRequest): Session dataappId(string, optional): Application IDgameId(number, optional): Game IDcognitoUserId(string): User's Cognito IDplatform(Platform): Platform being usedappVersion(string): Application versionmetadata(Record, optional): Additional session dataappName(string, optional): Application name
Returns: Promise<ISession>
const session = await sessionClient.createSession({
appId: 'app-123',
cognitoUserId: 'user-456',
platform: Platform.WEB,
appVersion: '1.0.0',
metadata: {
deviceType: 'desktop',
browser: 'Chrome'
}
});
getSessionById
Retrieves a specific session by its ID.
Parameters:
sessionId(string): Session ID
Returns: Promise<ISession>
const session = await sessionClient.getSessionById('session-789');
getAppSessions
Retrieves all sessions for a specific application with optional filtering and pagination.
Parameters:
appId(string): Application IDprops(IQuerySessionsRequest, optional): Query parameterslimit(number): Items per pagepage(number): Page numbersortOrder(SortOrderEnum): Sort orderstartDate(string): Filter from dateendDate(string): Filter to dateappId(string): Additional app filterplatform(Platform): Filter by platform
Returns: Promise<PaginatedResponse<ISession>>
const sessions = await sessionClient.getAppSessions('app-123', {
limit: 50,
page: 1,
platform: Platform.WEB,
startDate: '2025-01-01',
endDate: '2025-01-31'
});
terminateSession
Manually terminates an active session.
Parameters:
sessionId(string): Session IDpayload(object): Termination datareason(string, optional): Reason for terminationendedAt(string, optional): Custom end timestamp
Returns: Promise<void>
await sessionClient.terminateSession('session-789', {
reason: 'User logged out',
endedAt: new Date().toISOString()
});
Types
Platform
enum Platform {
IOS = 'ios',
ANDROID = 'android',
WEB = 'web',
WINDOWS = 'windows',
MACOS = 'macos',
LINUX = 'linux',
OTHER = 'other'
}
ISession
interface ISession {
sessionId: string;
cognitoUserId: string;
appId: string;
appName?: string;
platform: Platform;
appVersion: string;
metadata?: Record;
createdAt: Date;
duration?: number;
updatedAt: Date;
deletedAt?: Date;
}
PaginatedResponse
interface PaginatedResponse<T> {
items: T[];
pagination: {
total: number;
page: number;
limit: number;
totalPages: number;
hasNextPage: boolean;
hasPreviousPage: boolean;
};
}