Skip to main content

Configuration

When creating a DID session, you need to pass an array of string identifiers for resources you want to authorize for. In the context of the Ceramic Network, resources are an array of Model Stream Ids or Streams Ids. Typically you will just pass resources from the @composedb libraries as you will already manage your Composites and Models there. For example:

import { ComposeClient } from '@composedb/client'

//... Reference above and `@composedb` docs for additional configuration here

const client = new ComposeClient({ceramic, definition})
const resources = client.resources
const session = await DIDSession.get(accountId, authMethod, { resources })
client.setDID(session.did)

If you are still using @glazed libraries and tile document streams you will typically pass a wildcard resource, this all allows 'access all'. While not ideal, there is technical limits in @glazed libraries and tile document streams that make it difficult to offer more granular permission access to sets of stream. Authorization was mostly designed with model document streams and @composedb libraries in mind. Wildcard resource may not be supported in the future.

const session = await DIDSession.get(accountId, authMethod, { resources: [`ceramic://*`]})

By default a session will expire in 1 week. You can change this time by passing the expiresInSecs option to indicate how many seconds from the current time you want this session to expire.

const oneDay = 60 * 60 * 24
const session = await DIDSession.get(accountId, authMethod, { resources: [...], expiresInSecs: oneDay })