Setup Guide

Memority Tenant Project

Memority Tenant Project Structure

A tenant project is a Maven multi-module project that contains all the configuration settings for one Memority instance (tenant). The project manages configuration as code: it stores every object type (policies, rules, connectors, etc.) as an XML or JSON file, versions each file in Git, and deploys them through a Maven build.

Project layout

<tenant-name>/
├── pom.xml              ← Root POM: declares modules, environment profiles, dependency versions
├── assembly/            ← Aggregates all modules into a single deployable artifact
├── am/                  ← Access Management
│   ├── amcp/            ← Authentication & portal configuration
│   └── rba/             ← Risk-Based Authentication
├── im/                  ← Identity Management
│   ├── idm/             ← Identity data model
│   ├── bum/             ← Business User Management / UI policies
│   └── sync/            ← Synchronization & provisioning connectors
└── shared/              ← Cross-cutting services
    ├── aud/             ← Audit settings
    ├── i18n/            ← Internationalization / translations
    ├── ntf/             ← Email notifications
    ├── rep/             ← Reporting definitions
    └── tcf/             ← Themes & custom assets

Each sub-module follows the same pattern:

<module>/
├── pom.xml
├── src/main/resources/  ← Configuration objects (XML files)
├── src/main/data/       ← Seed data (JSON) — only in idm and amcp
├── vars.properties      ← Variables common to all environments
└── vars_<env>.properties ← Environment-specific variable overrides

Resource organization — You can organize configuration files inside src/main/resources/ in any folder structure. By default, the project groups them by configuration type (one directory per object type, e.g. AttributeDefinition/, Rule/), which makes individual objects easy to locate. You can add sub-folders freely within those type directories to further classify files by functional area, application, or any other criteria relevant to your project.


am — Access Management

Configures how users authenticate and how the portal behaves.

amcp — Authentication & Portal Configuration

Authentication and access configurations.

Folder

Contains

LoginCustomization/

Login page appearance

SessionConfiguration/

Session timeout and renewal rules

AuthenticationMechanisms/

Authentication mechanisms (MFA, OTP, SAML, OIDC)

AuthenticationModules/

Authentication chains (modules combining mechanisms)

AmAttributeDefinition/

User attributes managed by the AM layer

OAuth2Configuration/

OAuth2 clients and scopes

WebAuthnConfiguration/

WebAuthn / passkey settings

Setting/

Module-level settings

src/main/data/

Federation definitions (federations_prod.json, federations_Pre-Prod.json)

rba — Risk-Based Authentication

Risk based authentication configurations.

Folder

Contains

AuthenticationRiskPolicies/

Step-up authentication rules based on risk score

EnvironmentRiskPolicies/

Risk evaluation based on environment context (IP, geolocation…)

UserRiskPolicies/

Risk rules tied to user behaviour

Setting/

Module-level settings


im — Identity Management

Defines the identity model, the business rules applied to it, and the connectors that push/pull data to external systems.

idm — Identity Data Model

Data model configurations.

Folder

Contains

AttributeDefinition/

Identity attributes (name, email, custom fields…)

IdentityTypes/

Identity type definitions (employee, contractor, service account…)

OrganizationType/

Organizational unit types

ObjectLifecyclePolicy/

Lifecycle transitions (hire, transfer, departure…)

ObjectPolicy/

Calculation and derivation rules for attributes

DeduplicationPolicy/

Rules to detect and merge duplicate identities

RoleType/

Role types (application roles, business roles…)

RolePublicationType/

Rules for publishing roles to end users

Right/

Fine-grained entitlements

ResourceType/

Resource type definitions

PasswordPolicy/

Password complexity and rotation rules

ReferenceTable/

Reference data (country codes, job codes, etc.)

Rule/

Groovy scripts / derivation rules

Setting/

Module-level settings

src/main/data/

Seed data: organizations.json, roles.json, resources_prod.json, resources_pprod.json

bum — Business User Management

Portal and features configurations.

Folder

Contains

FeatureConfiguration/

Activates / configures portal features

FeatureAccessPolicy/

Controls which identities can access which features

AttributeEditor/

UI forms for viewing and editing identity attributes

BusinessPolicy/

Business validation rules for user actions

RoleRequestPolicy/

Policies governing role request and approval workflows

WorkflowTemplate/ / Workflow/

Approval workflow definitions

PublicAccessConfiguration/

Settings for public (unauthenticated) access

Rule/

Groovy scripts

Setting/

Module-level settings

sync — Synchronization & Provisioning

Synchronization & Provisioning configurations.

Folder

Contains

Application/

Target application definitions

ApplicationProfile/

How identities are represented in each application

ConnectorDefinition/

Generic connector configurations

RestConnectorDefinition/

REST-based connector configurations

ProvisioningTaskDefinition/

Tasks that push changes to target applications

SynchronizationTaskDefinition/

Tasks that import data from authoritative sources

SynchronizationTaskPostProcessingDefinition/

Post-processing steps after a sync task

ExportTaskDefinition/

Tasks that export data

AccountDiscoveryTaskDefinition/

Tasks that discover existing accounts in targets

AccountDiscoveryTaskPostProcessingDefinition/

Post-processing after account discovery

Setting/

Module-level settings


shared — Cross-cutting Services

All shared sub-modules.

Module

Contains

aud/

Audit configuration and settings

i18n/

Translation bundles for all languages

ntf/

Email notification templates (EmailNotificationDefinition/, NotificationTemplate/)

rep/

Report definitions (XML) for identity, recertification, and resource reports

tcf/

UI themes and static assets (Theme/, Asset/)


assembly — Deployment Artifact

The assembly module depends on all other sub-modules and uses the Maven Assembly Plugin to package every dataset into a single deployable directory. This artifact is what the Memority Integration Tool (MIT) deploys to the platform.

Environment management

The root pom.xml defines one Maven profile per environment:

Profile

Environment

Purpose

env-int

Integration

Development & integration testing

env-preprod

Pre-production

Staging / UAT

env-prod

Production

Live environment

Each profile sets the platform API URL, SSO URL, stack name, and environment identifier.

Variable substitution — within any XML resource file, variables use the @{variable.name} syntax. Maven replaces them at build time using values from:

  1. vars.properties (shared across all environments)

  2. vars_<env>.properties (environment-specific overrides)

Example:

<email>@{setting.idm.system.user.email.value}</email>

resolves to the value set in vars.properties or vars_prod.properties depending on the active profile.