Zum Inhalt
HALOWERK

Agentenwerk

oss openrefine verified table recipe replay

Executes a caller-directed sequence of table operations in native OpenRefine and returns the transformed table together with the exported recipe. What distinguishes it from simply transforming data is the evidence: the recipe is persisted, the project is reopened, and the whole thing is replayed from the original input, with hashes reported at each stage.

POST https://agent.halowerk.com/v1/oss-openrefine-verified-table-recipe-replay

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
tableobjectJa
stepsarrayJa
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "properties": {
    "table": {
      "type": "object",
      "properties": {
        "columns": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
          },
          "minItems": 1,
          "maxItems": 16
        },
        "rows": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
              },
              "values": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 4096
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "minItems": 1,
                "maxItems": 16
              }
            },
            "required": [
              "id",
              "values"
            ],
            "additionalProperties": false
          },
          "minItems": 1,
          "maxItems": 1000
        }
      },
      "required": [
        "columns",
        "rows"
      ],
      "additionalProperties": false
    },
    "steps": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "op": {
                "const": "normalize_text"
              },
              "column": {
                "type": "string",
                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
              },
              "trim": {
                "type": "boolean"
              },
              "case": {
                "enum": [
                  "preserve",
                  "lower",
                  "upper"
                ]
              }
            },
            "required": [
              "op",
              "column",
              "trim",
              "case"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "op": {
                "const": "replace_values"
              },
              "column": {
                "type": "string",
                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
              },
              "edits": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "from": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 4096
                      },
                      "minItems": 1,
                      "maxItems": 32
                    },
                    "to": {
                      "type": "string",
                      "maxLength": 4096
                    }
                  },
                  "required": [
                    "from",
                    "to"
                  ],
                  "additionalProperties": false
                },
                "minItems": 1,
                "maxItems": 32
              }
            },
            "required": [
              "op",
              "column",
              "edits"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "op": {
                "const": "add_text_column"
              },
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
              },
              "columns": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
                },
                "minItems": 1,
                "maxItems": 8
              },
              "separator": {
                "type": "string",
                "maxLength": 64
              },
              "null_policy": {
                "enum": [
                  "empty",
                  "propagate"
                ]
              }
            },
            "required": [
              "op",
              "name",
              "columns",
              "separator",
              "null_policy"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "op": {
                "const": "rename_column"
              },
              "column": {
                "type": "string",
                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
              },
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
              }
            },
            "required": [
              "op",
              "column",
              "name"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "op": {
                "const": "remove_column"
              },
              "column": {
                "type": "string",
                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
              }
            },
            "required": [
              "op",
              "column"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "op": {
                "const": "reorder_columns"
              },
              "columns": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
                },
                "minItems": 1,
                "maxItems": 16
              }
            },
            "required": [
              "op",
              "columns"
            ],
            "additionalProperties": false
          }
        ]
      },
      "minItems": 1,
      "maxItems": 16
    }
  },
  "required": [
    "table",
    "steps"
  ],
  "additionalProperties": false
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "table": {
    "columns": [
      "name",
      "code",
      "status",
      "notes"
    ],
    "rows": [
      {
        "id": "r1",
        "values": [
          " Élodie ",
          " X1 ",
          "yes",
          null
        ]
      },
      {
        "id": "r2",
        "values": [
          "ALICE",
          "x2",
          "Y",
          ""
        ]
      },
      {
        "id": "r3",
        "values": [
          null,
          "001",
          "no",
          "keep"
        ]
      }
    ]
  },
  "steps": [
    {
      "op": "normalize_text",
      "column": "name",
      "trim": true,
      "case": "lower"
    },
    {
      "op": "normalize_text",
      "column": "code",
      "trim": true,
      "case": "preserve"
    },
    {
      "op": "replace_values",
      "column": "status",
      "edits": [
        {
          "from": [
            "yes",
            "Y"
          ],
          "to": "active"
        },
        {
          "from": [
            "no"
          ],
          "to": "inactive"
        }
      ]
    },
    {
      "op": "add_text_column",
      "name": "label",
      "columns": [
        "name",
        "code"
      ],
      "separator": " / ",
      "null_policy": "empty"
    },
    {
      "op": "rename_column",
      "column": "code",
      "name": "external_id"
    },
    {
      "op": "remove_column",
      "column": "notes"
    }
  ]
}

Ergebnis & Dokumentation

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →