> ## Documentation Index
> Fetch the complete documentation index at: https://learn.social.plus/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Understand the SDK pages for user identity, user operations, roles, and moderation workflows.

User management in social.plus starts with your own identity system. Your app supplies a stable `userId`, then the SDK uses that ID for login, profile reads, profile updates, search, permissions, and moderation actions.

<Info>
  social.plus does not replace your account system. Keep private identity data in your backend, and send only the stable user ID plus social profile fields your product needs.
</Info>

## Section Map

<CardGroup cols={2}>
  <Card title="User Identity" icon="id-card" href="/social-plus-sdk/core-concepts/user-management/user-identity">
    Choose stable user IDs and understand which social profile fields the SDK stores.
  </Card>

  <Card title="User Operations" icon="user-gear" href="/social-plus-sdk/core-concepts/user-management/user-operations/overview">
    Create users, retrieve profiles, search users, update profiles, flag users, and manage token workflows.
  </Card>

  <Card title="Roles & Permissions" icon="user-shield" href="/social-plus-sdk/core-concepts/user-management/roles-permissions">
    Check whether the current user can perform actions in global, channel, or community scopes.
  </Card>

  <Card title="Flag and Unflag Users" icon="flag" href="/social-plus-sdk/core-concepts/user-management/user-operations/flag-unflag-user">
    Add user reporting flows for moderator review.
  </Card>
</CardGroup>

## Implementation Flow

<Steps>
  <Step title="Choose a stable user ID">
    Use an immutable ID from your own system, such as a database primary key or UUID.
  </Step>

  <Step title="Log in or create the user">
    Call the SDK `login` method. If the `userId` does not exist yet, the SDK creates the user.
  </Step>

  <Step title="Read or update social profile fields">
    Use user repository APIs for profile reads, search, query, and current-user profile updates.
  </Step>

  <Step title="Apply safety and permission checks">
    Use permission checks for protected actions and flagging APIs for reporting workflows.
  </Step>
</Steps>

## Quick Start

1. **[User Identity](/social-plus-sdk/core-concepts/user-management/user-identity)** - Decide what `userId` your app will send to social.plus.
2. **[Create User](/social-plus-sdk/core-concepts/user-management/user-operations/create-user)** - Log in or create the user through the SDK.
3. **[Get User Information](/social-plus-sdk/core-concepts/user-management/user-operations/get-user-information)** - Retrieve profiles for known users or user lists.
4. **[Search and Query Users](/social-plus-sdk/core-concepts/user-management/user-operations/search-and-query-users)** - Build user pickers, directories, or moderation lists.
5. **[Roles & Permissions](/social-plus-sdk/core-concepts/user-management/roles-permissions)** - Gate protected actions by user capability.

## Data Boundary

| Data                                           | Owner                                 | SDK behavior                                           |
| ---------------------------------------------- | ------------------------------------- | ------------------------------------------------------ |
| Login credentials, email, private profile data | Your app/backend                      | Keep this outside social.plus.                         |
| `userId`                                       | Your app/backend                      | Sent to social.plus as the immutable user identifier.  |
| Display name, description, avatar, metadata    | social.plus stores what you send      | Use only social profile fields needed by your product. |
| Roles, permissions, moderation state           | social.plus and Console/API workflows | Read or check through SDK methods where available.     |
