Skip to main content

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 data
    • appId (string, optional): Application ID
    • gameId (number, optional): Game ID
    • cognitoUserId (string): User's Cognito ID
    • platform (Platform): Platform being used
    • appVersion (string): Application version
    • metadata (Record, optional): Additional session data
    • appName (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 ID
  • props (IQuerySessionsRequest, optional): Query parameters
    • limit (number): Items per page
    • page (number): Page number
    • sortOrder (SortOrderEnum): Sort order
    • startDate (string): Filter from date
    • endDate (string): Filter to date
    • appId (string): Additional app filter
    • platform (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 ID
  • payload (object): Termination data
    • reason (string, optional): Reason for termination
    • endedAt (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;
};
}