Identifier checksum validation. A custom identifier can name a built-in¶
Source: identifier-validator.phisql (spec v1.1.0)
PhiSQL¶
-- Identifier checksum validation. A custom identifier can name a built-in
-- validator (see spec/v1.0/catalog/validators.yaml); a regex match is kept only
-- if the validator passes, so format-valid but checksum-invalid values are
-- rejected. New in spec v1.1. Set through the generic OPTIONS passthrough; there
-- is no dedicated clause. Compiles to identifier-validator.json.
POLICY identifier_validator;
-- Canadian SIN: nine digits, kept only if it passes the Luhn checksum.
DEFINE IDENTIFIER 'CANADA_SIN' MATCHING '\b\d{3}-?\d{3}-?\d{3}\b'
WITH REDACT
OPTIONS (validator = 'luhn');
-- Brazilian CPF: the object form, naming the validator and its parameters.
DEFINE IDENTIFIER 'BRAZIL_CPF' MATCHING '\b\d{3}\.?\d{3}\.?\d{3}-?\d{2}\b'
WITH REDACT
OPTIONS (validator = (name = 'mod11', params = (variant = 'cpf')));
Compiles to¶
{
"identifiers": {
"identifiers": [
{
"classification": "CANADA_SIN",
"pattern": "\\b\\d{3}-?\\d{3}-?\\d{3}\\b",
"identifierFilterStrategies": [
{
"strategy": "REDACT"
}
],
"validator": "luhn"
},
{
"classification": "BRAZIL_CPF",
"pattern": "\\b\\d{3}\\.?\\d{3}\\.?\\d{3}-?\\d{2}\\b",
"identifierFilterStrategies": [
{
"strategy": "REDACT"
}
],
"validator": {
"name": "mod11",
"params": {
"variant": "cpf"
}
}
}
]
}
}