Fix policy JSON schema violations; strip redundant DataType from AttributeDesignators
JACAL-Combining-Algorithms.md:
- Rewrite "Policy with deny-unless-permit" example to correct schema:
- "Rules" array → "CombinerInput" with {"Rule": {...}} items
- "RuleId" → "Id" (LocalIdentifierType, short name form)
- "RuleEffect" → "Effect"
- Bare "FunctionId"/"Arguments" in Condition → {"Apply": {"FunctionId": ...,
"Expression": [...]}} at all levels
- {"AttributeValue": {"DataType": ..., "Value": ...}} → plain {"Value": ...}
- ":datatype:string" → ":data-type:string"
- ":category:access-subject" → ":subject-category:access-subject"
- ":category:resource" → ":attribute-category:resource"
JACAL-Attribute-Sourcing.md:
- Rewrite Section 4 illustrative Condition snippet to correct schema:
- Bare "FunctionId"/"Arguments" → {"Apply": {"FunctionId": ..., "Expression": [...]}}
- {"AttributeValue": ...} → plain {"Value": 10000}
- ":datatype:integer" → ":data-type:integer" (unused after DataType removal)
- ":category:access-subject" → ":subject-category:access-subject"
- Fix function: string-equal on integer attribute → integer-greater-than-or-equal
All JACAL-Example-*.md, JACAL-Short-ID-Expression.md,
JACAL-Authoring-Your-First-Policy.md, JACAL-Common-Mistakes.md,
JACAL-Policy-Authoring-Patterns-and-Pitfalls.md:
- Remove "DataType" from all AttributeDesignator objects throughout all
policy JSON blocks. Per ACAL §7.15 (ApplyType) the DataType inference
rule allows omission when the parent function's signature has a fixed
parameter type — which is the case for every function used in these
examples (string-equal, integer-greater-than-or-equal, boolean-equal,
and, or). When not inside an Apply, DataType defaults to string per
§7.17/7.18, which is correct for the remaining cases.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Convert pandoc tables and bullets to GFM in all 10 example files
Tables:
- Replace pandoc simple tables (header + dash separator, no borders)
with GFM pipe tables
- Replace pandoc grid tables (bordered with all-dash lines) with GFM
pipe tables; multi-line cells are joined into single-line cell values
- Applies to all Subject/Action/Resource/Environment attribute tables
throughout all 10 examples
Bullets:
- Replace • text\ format (bullet char + backslash line-break) with
standard markdown - list items
- Handles wrapped bullets where continuation appears on next line
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
First draft of JACAL Practical Guide