record.json 8.82 KB
{
  "Title": "Records",
  "Description": "Compose records",
  "Interface": "Record",
  "Struct": [
    {
      "imports": [
        "github.com/cortezaproject/corteza-server/compose/types"
      ]
    }
  ],
  "Parameters": {
    "path": [
      {
        "name": "namespaceID",
        "required": true,
        "title": "Namespace ID",
        "type": "uint64"
      },
      {
        "name": "moduleID",
        "required": true,
        "title": "Module ID",
        "type": "uint64"
      }
    ]
  },
  "Protocol": "",
  "Authentication": [],
  "Path": "/namespace/{namespaceID}/module/{moduleID}/record",
  "APIs": [
    {
      "Name": "report",
      "Method": "GET",
      "Title": "Generates report from module records",
      "Path": "/report",
      "Parameters": {
        "get": [
          {
            "name": "metrics",
            "required": false,
            "title": "Metrics (eg: 'SUM(money), MAX(calls)')",
            "type": "string"
          },
          {
            "name": "dimensions",
            "required": true,
            "title": "Dimensions (eg: 'DATE(foo), status')",
            "type": "string"
          },
          {
            "name": "filter",
            "required": false,
            "title": "Filter (eg: 'DATE(foo) \u003e 2010')",
            "type": "string"
          }
        ]
      }
    },
    {
      "Name": "list",
      "Method": "GET",
      "Title": "List/read records from module section",
      "Path": "/",
      "Parameters": {
        "get": [
          {
            "name": "filter",
            "required": false,
            "title": "Filtering condition",
            "type": "string"
          },
          {
            "name": "page",
            "required": false,
            "title": "Page number",
            "type": "uint"
          },
          {
            "name": "perPage",
            "required": false,
            "title": "Returned items per page (default 50)",
            "type": "uint"
          },
          {
            "name": "sort",
            "required": false,
            "title": "Sort field (default id desc)",
            "type": "string"
          }
        ]
      }
    },
    {
      "Name": "importInit",
      "Method": "POST",
      "Title": "Initiate record import session",
      "Path": "/import",
      "Parameters": {
        "post": [
          {
            "name": "upload",
            "required": true,
            "title": "File import",
            "type": "*multipart.FileHeader"
          }
        ]
      }
    },
    {
      "Name": "importRun",
      "Method": "PATCH",
      "Title": "Run record import",
      "Path": "/import/{sessionID}",
      "Parameters": {
        "path": [
          {
            "name": "sessionID",
            "required": true,
            "title": "Import session",
            "type": "uint64"
          }
        ],
        "post": [
          {
            "name": "fields",
            "required": true,
            "title": "Fields defined by import file",
            "type": "json.RawMessage"
          },
          {
            "name": "onError",
            "required": true,
            "title": "What happens if record fails to import",
            "type": "string"
          }
        ]
      }
    },
    {
      "Name": "importProgress",
      "Method": "GET",
      "Title": "Get import progress",
      "Path": "/import/{sessionID}",
      "Parameters": {
        "path": [
          {
            "name": "sessionID",
            "required": true,
            "title": "Import session",
            "type": "uint64"
          }
        ]
      }
    },
    {
      "Name": "export",
      "Method": "GET",
      "Title": "Exports records that match ",
      "Path": "/export{filename}.{ext}",
      "Parameters": {
        "get": [
          {
            "name": "filter",
            "required": false,
            "title": "Filtering condition",
            "type": "string"
          },
          {
            "name": "fields",
            "required": true,
            "title": "Fields to export",
            "type": "[]string"
          }
        ],
        "path": [
          {
            "name": "filename",
            "required": false,
            "title": "Filename to use",
            "type": "string"
          },
          {
            "name": "ext",
            "required": true,
            "title": "Export format",
            "type": "string"
          }
        ]
      }
    },
    {
      "Name": "exec",
      "Method": "POST",
      "Title": "Executes server-side procedure over one or more module records",
      "Path": "/exec/{procedure}",
      "Parameters": {
        "path": [
          {
            "name": "procedure",
            "required": true,
            "title": "Name of procedure to execute",
            "type": "string"
          }
        ],
        "post": [
          {
            "name": "args",
            "required": false,
            "title": "Procedure arguments",
            "type": "[]ProcedureArg"
          }
        ]
      }
    },
    {
      "Name": "create",
      "Method": "POST",
      "Title": "Create record in module section",
      "Path": "/",
      "Parameters": {
        "post": [
          {
            "name": "values",
            "required": true,
            "title": "Record values",
            "type": "types.RecordValueSet"
          }
        ]
      }
    },
    {
      "Name": "read",
      "Method": "GET",
      "Title": "Read records by ID from module section",
      "Path": "/{recordID}",
      "Parameters": {
        "path": [
          {
            "name": "recordID",
            "required": true,
            "title": "Record ID",
            "type": "uint64"
          }
        ]
      }
    },
    {
      "Name": "update",
      "Method": "POST",
      "Title": "Update records in module section",
      "Path": "/{recordID}",
      "Parameters": {
        "path": [
          {
            "name": "recordID",
            "required": true,
            "title": "Record ID",
            "type": "uint64"
          }
        ],
        "post": [
          {
            "name": "values",
            "required": true,
            "title": "Record values",
            "type": "types.RecordValueSet"
          }
        ]
      }
    },
    {
      "Name": "bulkDelete",
      "Method": "DELETE",
      "Title": "Delete record row from module section",
      "Path": "/",
      "Parameters": {
        "post": [
          {
            "name": "recordIDs",
            "required": false,
            "title": "IDs of records to delete",
            "type": "[]string"
          },
          {
            "name": "truncate",
            "required": false,
            "title": "Remove ALL records of a specified module (pending implementation)",
            "type": "bool"
          }
        ]
      }
    },
    {
      "Name": "delete",
      "Method": "DELETE",
      "Title": "Delete record row from module section",
      "Path": "/{recordID}",
      "Parameters": {
        "path": [
          {
            "name": "recordID",
            "required": true,
            "title": "Record ID",
            "type": "uint64"
          }
        ]
      }
    },
    {
      "Name": "upload",
      "Method": "POST",
      "Title": "Uploads attachment and validates it against record field requirements",
      "Path": "/attachment",
      "Parameters": {
        "post": [
          {
            "name": "recordID",
            "required": false,
            "title": "Record ID",
            "type": "uint64"
          },
          {
            "name": "fieldName",
            "required": true,
            "title": "Field name",
            "type": "string"
          },
          {
            "name": "upload",
            "required": true,
            "title": "File to upload",
            "type": "*multipart.FileHeader"
          }
        ]
      }
    },
    {
      "Name": "triggerScript",
      "Method": "POST",
      "Title": "Fire compose:record trigger",
      "Path": "/{recordID}/trigger",
      "Parameters": {
        "path": [
          {
            "name": "recordID",
            "required": true,
            "title": "ID",
            "type": "uint64"
          }
        ],
        "post": [
          {
            "name": "script",
            "required": true,
            "title": "Script to execute",
            "type": "string"
          },
          {
            "name": "values",
            "required": true,
            "title": "Record values",
            "type": "types.RecordValueSet"
          }
        ]
      }
    },
    {
      "Name": "triggerScriptOnList",
      "Method": "POST",
      "Title": "Fire compose:record trigger",
      "Path": "/trigger",
      "Parameters": {
        "post": [
          {
            "name": "script",
            "required": true,
            "title": "Script to execute",
            "type": "string"
          }
        ]
      }
    }
  ]
}