Initial draft of XACML 4.0 in markdown is available #37
Replies: 16 comments 20 replies
-
Thanks for the great work @steven-legg 👍 A few comments:
|
Beta Was this translation helpful? Give feedback.
-
Yes, your GraphViz data-flow diagram looks 100% better than what I came up with using mermaid: https://parducci.net/xfr/data-flow.html 🤢 Perhaps there are ways to adjust the formatting, but in my experience it's best suited for simple flows. Personally, I'd rather have the precision and flexibility of something like Omnigraffle generate the SVG, but whatever works... |
Beta Was this translation helpful? Give feedback.
-
Generating figure 2 with Mermaid: block-beta
columns 7
block:left
columns 1
space
space
in["domain-specific<br>inputs"]
end
block:shadedarea:5
columns 5
space:2 policy("xacml<br>Policy.xml") space:2
space:5
request("xacml Context/<br>Request.xml") space pdp("PDP") space response("xacml Context/<br>Response.xml")
policy --> pdp
request --> pdp
pdp --> response
end
block:right
columns 1
space
space
out["domain-specific<br>outputs"]
end
in --> request
response --> out
%% styles
classDef default stroke:black,rx:5px,ry:5px
style left opacity:0
style right opacity:0
style shadedarea fill:lightgray
classDef whitebox fill:white
class policy,pdp,request,response,in,out whitebox
Same thing but with big/thick arrows: block-beta
columns 9
block:left:2
columns 2
space:2
space:2
input["domain-specific<br>inputs"]
input_arrow<[" "]>(right)
end
block:shadedarea:5
columns 5
space:2 policy("xacml<br>Policy.xml") space:2
space:2 down_arrow<[" "]>(down) space:2
request("xacml Context/<br>Request.xml") pdp_input_arrow<[" "]>(right) pdp("PDP") pdp_output_arrow<[" "]>(right) response("xacml Context/<br>Response.xml")
end
block:right:2
columns 2
space:2
space:2
output_arrow<[" "]>(right) output["domain-specific<br>outputs"]
end
%% styles
classDef default stroke:black,rx:5px,ry:5px
style left opacity:0
style right opacity:0
style shadedarea fill:lightgray
classDef whitebox fill:white
class policy,pdp,request,response,input,output,input_arrow,output_arrow,pdp_input_arrow,pdp_output_arrow,down_arrow whitebox
|
Beta Was this translation helpful? Give feedback.
-
Generating figure 3 (based on #11 new model) with Mermaid looks messy 😞 (I can't do straight links or avoid overlapping) : %%{init: {'theme':'neutral'}}%%
classDiagram
%% Issue: no sharp curves or straight lines. See https://github.com/mermaid-js/mermaid/issues/2067 and https://github.com/mermaid-js/mermaid/issues/2817
%% Issue: overlapping edges
%% Policy "0..1"*--"1" Description
%% Policy "0..1"*--"1" PolicyIssuer
%% Policy "0..1"*--"1" PolicyDefaults
%% Policy "*"*--"1" Parameter
Policy "1"*--"1" CombiningAlgorithm
Policy "*"*--"*" Policy
Policy "0..1"--"1" Condition
Policy "*"*--"1" Rule
%% Policy "*"*--"1" CombinerParameter
%% Policy "*"*--"1" VariableDefinition
Policy "*"*--"1" NoticeExpression
%% Policy "1"*--"1" PolicyId
%% Policy "1"*--"1" Version
%% Policy "1"*--"1" MaxDelegationDepth
%% Rule "0..1"*--"1" Description
Rule "0..1"*--"1" Condition
Rule "*"*-- NoticeExpression
%% Rule "1"*--"1" RuleId
Rule "1"*--"1" Effect
I shall try with PlantUML. |
Beta Was this translation helpful? Give feedback.
-
I found a way to do it with pandoc extension "definition_lists". All there is to do is to replace the
I also fixed formatting issues with several XML tags, quotes and such, also added syntax highlighting for XML blocks and pseudo-codes (combining algorithms). |
Beta Was this translation helpful? Give feedback.
-
The formatting looks good on my phone. bOn Sep 26, 2024, at 9:29 AM, Cyril Dangerville ***@***.***> wrote:
I couldn't find a way to make an indented paragraph so I used bullet points instead. The style sheets seem to be creating indented paragraphs for the OASIS boilerplate though.
I found a way to do it with pandoc extension "definition_lists". All there is to do is to replace the * the_definition with : the_definition in the markdown, and gfm with gfm+definition_lists in the pandoc command. I tested this on my personal repo for the Glossary section, please check it here and let me know if it's fine and I'll apply the change here. As you'll see, it looks the same as before except no more bullets.
GitHub makes a reasonable effort to format the markdown but the result is not the same as processing it through pandoc. You could install pandoc and process the markdown yourself but to save you the trouble here is a zip file with the output: xacml-spec-distribution.zip It would be nice to automate this publishing step somehow.
I fixed typos, wonky use of keywords and misdirected links as I found them.
I also fixed formatting issues with several XML tags, quotes and such, also added syntax highlighting for XML blocks and pseudo-codes (combining algorithms).
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Following a suggestion of @steven-legg in previous meetings IIRC, I'd like to create a Github workflow/action here to generate the HTML output automatically (with the pandoc command) and publish to the github pages. (I guess the URL would be something like https://oasis-tcs.github.io/xacml-spec/xacml-v4.0-csd01.html but the last part can be changed.) This way, one can see the latest draft in HTML without installing pandoc or downloading/checking out the repo with git, whenever one of us makes changes to the markdown. I tested a working github action for this on my personal repo already, that's how I got the link mentioned earlier. However, in order to do that, one of you with admin permissions (I don't have) need to change the Settings on this repository in order to allow publishing Github pages from the xacml 4.0 branch: go to Settings > Environments, create a new environment called @humantypo @Hal-Lockhart (or @steven-legg if you have admin permissions) could you do that change please? Or if there is a different OASIS process to do such draft publishing, let me know. |
Beta Was this translation helpful? Give feedback.
-
I will request from Oasis.
(edited to remove artifacts from email reply—seems like there’s an issue with that)
|
Beta Was this translation helpful? Give feedback.
-
I have replaced the PNG pictures of the 3 figures in the markdown with Graphviz/Plantuml code, in order to generate SVGs in the HTML. You can check the result here for instance. I also updated the pandoc command line in the markdown since it requires a few changes to use graphviz/plantuml tools. |
Beta Was this translation helpful? Give feedback.
-
Does Graphviz/Plantuml have the ability to generate a “container” for the image (div)? I’m fine with whatever size they turn out but unless the image is bounded by something that can stylistically change in size dynamically I think it will be limited to certain rendering layouts. |
Beta Was this translation helpful? Give feedback.
-
@cdanger Unless you are already doing it I propose to edit all the sections to use definition lists. |
Beta Was this translation helpful? Give feedback.
-
I've committed a change to convert the workaround bullet points into definition lists. The definition lists have some problems though. They don't work following a numbered paragraph or a code block. |
Beta Was this translation helpful? Give feedback.
-
Bill and I have been doing some off-list experimentation on this. We can get the |
Beta Was this translation helpful? Give feedback.
-
I have found that Safari works much better if we add an explicit header to the md file.
|
Beta Was this translation helpful? Give feedback.
-
I fixed several issues with the PDF output ( commit d92f25b ), including the one mentioned previously regarding definition lists, and lines that were exceeding the page width, especially in code blocks. This requires a latex header file passed as pandoc -H argument to customize the PDF output, so the pandoc command line to use for PDF generation goes as follows (I added this to the Introduction section):
|
Beta Was this translation helpful? Give feedback.
-
I committed the "span" solution for dealing with indented paragraphs following list items and code blocks. |
Beta Was this translation helpful? Give feedback.
-
I've pushed an update to xacml-v4.0-csd01.md on the xacml-4.0-core-spec branch that contains most of the text from XACML 3.0 plus errata.
I also edited the content to remove policy sets and their related definitions. The rule and policy combining algorithms have just become combining algorithms. The legacy combining algorithms are removed.
I didn't copy the examples yet because they will be extensively changed before we get to a final draft.
The images in section 3 are verbatim from the XACML 3.0 spec but will need some revision. I don't suppose anyone has the original source?
I left gaps in the section numbering where sections were deleted. There's a lot more reorganization to come so we can leave a tidy up to later, since we seem to have to manage the numbering manually.
I couldn't find a way to make an indented paragraph so I used bullet points instead. The style sheets seem to be creating indented paragraphs for the OASIS boilerplate though.
GitHub makes a reasonable effort to format the markdown but the result is not the same as processing it through pandoc. You could install pandoc and process the markdown yourself but to save you the trouble here is a zip file with the output: xacml-spec-distribution.zip It would be nice to automate this publishing step somehow.
The code snippets use a font size that I think is too small (in the pandoc output).
I fixed typos, wonky use of keywords and misdirected links as I found them.
Beta Was this translation helpful? Give feedback.
All reactions