Registry↗Dashboard↗

Orgs

The orgs the caller belongs to, and the org-wide log rollup. Any member can read the rollup; a key bound to another org gets 403.

2 methods

client.orgs.list()

The orgs the caller belongs to, personal org included (`isPersonal: true`). What `ulu log --orgs` iterates. A key bound to one org still lists every org its holder belongs to; the binding governs what it may read, not what it may see listed.

Requires authentication
slugrequiredstring

Org slug.

namerequiredstring

Display name.

isPersonalrequiredboolean

The caller's personal org.

list(): Promise<OrgListEntry[]>
typescript
import { OpsClient } from '@uluops/ops-sdk';

const client = new OpsClient({
  apiKey: 'ulr_your-api-key',
});

const result = await client.orgs.list();

console.log(result.slug);
Response Type
// Promise<OrgListEntry[]>
{
  slug: string;
  name: string;
  isPersonal: boolean;
}

client.orgs.getLogStat()

The project rollup org-wide (over the org's live projects) plus a `projects[]` summary table — name, runs, issues, fixed, regressions, lastRunAt — newest run first, capped at 100 with `hasMoreProjects`. Served from a 60 s cache per (org, window); `computedAt` says how old the numbers are. The slug in the path is the org; a client-level orgSlug does not redirect this read. Unknown slug → 404 ORG_NOT_FOUND; a key bound to another org → 403 ORG_ACCESS_DENIED. The source of uluops.ai's landing numbers.

Requires authentication
slugrequiredstring

Org slug.

queryoptionalLogStatQuery

since / until (ISO 8601).

orgrequiredstring

The org the rollup was computed for.

projectsrequiredOrgLogProjectSummary[]

Per-project rows, last run desc, max 100.

hasMoreProjectsrequiredboolean

More than 100 live projects.

computedAtrequiredstring

When the cached rollup was computed.

getLogStat(slug: string, query?: LogStatQuery): Promise<OrgLogStat>
typescript
import { OpsClient } from '@uluops/ops-sdk';

const client = new OpsClient({
  apiKey: 'ulr_your-api-key',
});

const result = await client.orgs.getLogStat('example-value');

console.log(result.org);
Response Type
// Promise<OrgLogStat>
{
  org: string;
  projects: OrgLogProjectSummary[];
  hasMoreProjects: boolean;
  computedAt: string;
}