Skip to content

Update or restore a rubric

client.rubrics.update(stringrubricID, RubricUpdateParams { rubric } params, RequestOptionsoptions?): RubricResponse { id, created_at, created_by, 7 more }
PATCH/v5/rubrics/{rubric_id}

Update a rubric’s fields, or restore a previously archived rubric.

The request body is a discriminated union. Send {"restore": true} to restore an archived rubric (clearing its archived state); send any other field set (such as title or tags) to update those fields, carrying forward any field not supplied. Both paths are append-only and produce a new version of the rubric rather than mutating the existing row. Updating the fields of an archived rubric is rejected — restore it first. Restoring a rubric that is not archived is a no-op that returns it unchanged without creating a new version.

ParametersExpand Collapse
rubricID: string
params: RubricUpdateParams { rubric }
rubric: PartialRubricRequestBase { tags, title } | RestoreRequest { restore }
One of the following:
PartialRubricRequestBase { tags, title }
tags?: Array<string>

The tags associated with the entity

title?: string

The rubric title

minLength1
RestoreRequest { restore }
restore: true

Set to true to restore the entity from the database.

ReturnsExpand Collapse
RubricResponse { id, created_at, created_by, 7 more }
id: string
created_at: string
formatdate-time
created_by: Identity { id, type, object }

The identity that created the entity.

id: string
type: "user" | "service_account"
One of the following:
"user"
"service_account"
object?: "identity"
tags: Array<string> | null

The tags associated with the entity

title: string
version: number
archived_at?: string
formatdate-time
criteria?: Array<RubricCriteriaResponse { id, created_at, rubric_id, 5 more } | RubricCriteriaSummaryResponse { title, weight } >

Full criteria on get, summary (title + weight) on list

One of the following:
RubricCriteriaResponse { id, created_at, rubric_id, 5 more }
id: string
created_at: string
formatdate-time
rubric_id: string
title: string
version: number
annotations?: Record<string, unknown>
object?: "rubric_criteria"
weight?: number
RubricCriteriaSummaryResponse { title, weight }

Slim criteria projection for list endpoints (title + weight only).

title: string
weight?: number
object?: "rubric"
updated_at?: string
formatdate-time

Update or restore a rubric

import SGPClient from 'scale-gp';

const client = new SGPClient({
  accountID: 'My Account ID',
  apiKey: process.env['SGP_API_KEY'], // This is the default and can be omitted
});

const rubricResponse = await client.rubrics.update('rubric_id', { rubric: {} });

console.log(rubricResponse.id);
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "tags": [
    "string"
  ],
  "title": "title",
  "version": 0,
  "archived_at": "2019-12-27T18:11:19.117Z",
  "criteria": [
    {
      "id": "id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "rubric_id": "rubric_id",
      "title": "title",
      "version": 0,
      "annotations": {
        "foo": "bar"
      },
      "object": "rubric_criteria",
      "weight": 0
    }
  ],
  "object": "rubric",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
Returns Examples
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "tags": [
    "string"
  ],
  "title": "title",
  "version": 0,
  "archived_at": "2019-12-27T18:11:19.117Z",
  "criteria": [
    {
      "id": "id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "rubric_id": "rubric_id",
      "title": "title",
      "version": 0,
      "annotations": {
        "foo": "bar"
      },
      "object": "rubric_criteria",
      "weight": 0
    }
  ],
  "object": "rubric",
  "updated_at": "2019-12-27T18:11:19.117Z"
}