> ## Documentation Index
> Fetch the complete documentation index at: https://botmesh.afaya.com.co/llms.txt
> Use this file to discover all available pages before exploring further.

# UserDataEntry

> Interface exported by @botmesh/core/spi.

Defined in: [core/provider.ts:1473](https://github.com/andresayac/botmesh/blob/main/packages/core/src/core/provider.ts#L1473)

One persisted per-user profile entry — the storage unit behind `ctx.user`.

The atomic unit is a TOP-LEVEL key inside a namespace: `ctx.user.set('address.city', …)`
reads and rewrites the whole `address` entry, while two different top-level
keys never touch each other. `value` is JSON-compatible data (stores persist
it as JSON and hand back a fresh copy on every read). `userId`, `namespace`
and `key` are compared as EXACT strings: case, accents and leading or
trailing whitespace all make a different entry.

## Properties

### userId

```ts theme={null}
userId: string;
```

Defined in: [core/provider.ts:1475](https://github.com/andresayac/botmesh/blob/main/packages/core/src/core/provider.ts#L1475)

Canonical subject id (the provider-resolved `senderId`). Opaque.

***

### namespace

```ts theme={null}
namespace: string;
```

Defined in: [core/provider.ts:1477](https://github.com/andresayac/botmesh/blob/main/packages/core/src/core/provider.ts#L1477)

Namespace that groups keys (`'default'` for `ctx.user`).

***

### key

```ts theme={null}
key: string;
```

Defined in: [core/provider.ts:1479](https://github.com/andresayac/botmesh/blob/main/packages/core/src/core/provider.ts#L1479)

Top-level key inside the namespace (first segment of a dot path).

***

### value

```ts theme={null}
value: unknown;
```

Defined in: [core/provider.ts:1481](https://github.com/andresayac/botmesh/blob/main/packages/core/src/core/provider.ts#L1481)

JSON-compatible value.

***

### expiresAt?

```ts theme={null}
expiresAt?: number;
```

Defined in: [core/provider.ts:1487](https://github.com/andresayac/botmesh/blob/main/packages/core/src/core/provider.ts#L1487)

Epoch ms after which the entry counts as absent. `undefined` = never
expires. Always a safe integer when written by `ctx.user` (BIGINT columns
and Redis `PX` reject fractions).

***

### updatedAt

```ts theme={null}
updatedAt: number;
```

Defined in: [core/provider.ts:1489](https://github.com/andresayac/botmesh/blob/main/packages/core/src/core/provider.ts#L1489)

Epoch ms of the last write (integer).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.