adobe / himl

A hierarchical yaml config in Python

Home Page:https://pypi.org/project/himl/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Double newline with multiline strings from Vault

aslafy-z opened this issue · comments

Expected Behaviour

vault:

/path/to/key:
  data: |
    -----BEGIN CERTIFICATE-----
    MIIC1TCCAb2gAwIBAgIJAIAI+nCNTUAuMA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV
    BAMTD3d3dy5leGFtcGxlLmNvbTAeFw0yMTA0MDkxNTIyMjlaFw0zMTA0MDcxNTIy
    MjlaMBoxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEB
    BQADggEPADCCAQoCggEBAK1klavp8ccE9es+8q2YQc9jRFmUIjwWXEzHQWXjoLQj
    ofqWOGP0XiUikx6Sj6USrgnIKbnt4mynn7awrh+yDm4q6rilqWurx7av/UVSTax9
    uMDB5Gf9hF87zHuS24I0EO7TKheRIdO8PLpLPe7a+SYylwmailLfnQZVPw/+Bovj
    2sa0fWRVy3qpvRoovPD77D9XrkS1LG6AaYFOmGboWL62rFB9xTy8vtfSIg+dHs2V
    NWVAVAIwqWMWY5E/WjBdDtZuCwpYl/eztoR6gjJqbI4g9lbpv/NCeAalMM8xKcQj
    /ZdI0j4H0IOVa+HNWwG+J46LDLV0AJcqKrd4PCEEJXUCAwEAAaMeMBwwGgYDVR0R
    BBMwEYIPd3d3LmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQB5bdOZqNae
    7nH69lSbunttLHYRHpkDhS7gNagns3lskq8+sUfanbq6Jf0iSIbwY2UO8M9/vzHb
    OvnhwiXRHMMK1W5E9a3r/9lVApOzdnVlyM0OPiGuubaVYMD7v0dwhEq0eETdrr29
    veI1R/8XSNcJD6XuW5OgQ5gooOL6Ao7aogPIDW3FMwSxm/5nS5xgp+924xFlk8zg
    moyuFiM99eH9OzALcIj21B/iBCrw1eM+BRgbr/azdWortnhPQpQB2LH6AMB2oQn0
    E05HDs1ZJ7Y1ovSrwN5L57YAPvP+87z8OeUkFwgQnu10y3CBuSysmXaFI1N2iv/2
    S5ukJUcRP1RC
    -----END CERTIFICATE-----

input.yaml:

certificate: "{{vault.key(/path/to/key/data)}}"
$ himl input.yaml
certificate: | 
  -----BEGIN CERTIFICATE-----
  MIIC1TCCAb2gAwIBAgIJAIAI+nCNTUAuMA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV
  BAMTD3d3dy5leGFtcGxlLmNvbTAeFw0yMTA0MDkxNTIyMjlaFw0zMTA0MDcxNTIy
  MjlaMBoxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEB
  BQADggEPADCCAQoCggEBAK1klavp8ccE9es+8q2YQc9jRFmUIjwWXEzHQWXjoLQj
  ofqWOGP0XiUikx6Sj6USrgnIKbnt4mynn7awrh+yDm4q6rilqWurx7av/UVSTax9
  uMDB5Gf9hF87zHuS24I0EO7TKheRIdO8PLpLPe7a+SYylwmailLfnQZVPw/+Bovj
  2sa0fWRVy3qpvRoovPD77D9XrkS1LG6AaYFOmGboWL62rFB9xTy8vtfSIg+dHs2V
  NWVAVAIwqWMWY5E/WjBdDtZuCwpYl/eztoR6gjJqbI4g9lbpv/NCeAalMM8xKcQj
  /ZdI0j4H0IOVa+HNWwG+J46LDLV0AJcqKrd4PCEEJXUCAwEAAaMeMBwwGgYDVR0R
  BBMwEYIPd3d3LmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQB5bdOZqNae
  7nH69lSbunttLHYRHpkDhS7gNagns3lskq8+sUfanbq6Jf0iSIbwY2UO8M9/vzHb
  OvnhwiXRHMMK1W5E9a3r/9lVApOzdnVlyM0OPiGuubaVYMD7v0dwhEq0eETdrr29
  veI1R/8XSNcJD6XuW5OgQ5gooOL6Ao7aogPIDW3FMwSxm/5nS5xgp+924xFlk8zg
  moyuFiM99eH9OzALcIj21B/iBCrw1eM+BRgbr/azdWortnhPQpQB2LH6AMB2oQn0
  E05HDs1ZJ7Y1ovSrwN5L57YAPvP+87z8OeUkFwgQnu10y3CBuSysmXaFI1N2iv/2
  S5ukJUcRP1RC
  -----END CERTIFICATE----- 

output:

$ cat output.yaml | yq -r .certificate
-----BEGIN CERTIFICATE-----
MIIC1TCCAb2gAwIBAgIJAIAI+nCNTUAuMA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV
BAMTD3d3dy5leGFtcGxlLmNvbTAeFw0yMTA0MDkxNTIyMjlaFw0zMTA0MDcxNTIy
MjlaMBoxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAK1klavp8ccE9es+8q2YQc9jRFmUIjwWXEzHQWXjoLQj
ofqWOGP0XiUikx6Sj6USrgnIKbnt4mynn7awrh+yDm4q6rilqWurx7av/UVSTax9
uMDB5Gf9hF87zHuS24I0EO7TKheRIdO8PLpLPe7a+SYylwmailLfnQZVPw/+Bovj
2sa0fWRVy3qpvRoovPD77D9XrkS1LG6AaYFOmGboWL62rFB9xTy8vtfSIg+dHs2V
NWVAVAIwqWMWY5E/WjBdDtZuCwpYl/eztoR6gjJqbI4g9lbpv/NCeAalMM8xKcQj
/ZdI0j4H0IOVa+HNWwG+J46LDLV0AJcqKrd4PCEEJXUCAwEAAaMeMBwwGgYDVR0R
BBMwEYIPd3d3LmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQB5bdOZqNae
7nH69lSbunttLHYRHpkDhS7gNagns3lskq8+sUfanbq6Jf0iSIbwY2UO8M9/vzHb
OvnhwiXRHMMK1W5E9a3r/9lVApOzdnVlyM0OPiGuubaVYMD7v0dwhEq0eETdrr29
veI1R/8XSNcJD6XuW5OgQ5gooOL6Ao7aogPIDW3FMwSxm/5nS5xgp+924xFlk8zg
moyuFiM99eH9OzALcIj21B/iBCrw1eM+BRgbr/azdWortnhPQpQB2LH6AMB2oQn0
E05HDs1ZJ7Y1ovSrwN5L57YAPvP+87z8OeUkFwgQnu10y3CBuSysmXaFI1N2iv/2
S5ukJUcRP1RC
-----END CERTIFICATE-----

Actual Behaviour

vault:

/path/to/key:
  data: |
    -----BEGIN CERTIFICATE-----
    MIIC1TCCAb2gAwIBAgIJAIAI+nCNTUAuMA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV
    BAMTD3d3dy5leGFtcGxlLmNvbTAeFw0yMTA0MDkxNTIyMjlaFw0zMTA0MDcxNTIy
    MjlaMBoxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEB
    BQADggEPADCCAQoCggEBAK1klavp8ccE9es+8q2YQc9jRFmUIjwWXEzHQWXjoLQj
    ofqWOGP0XiUikx6Sj6USrgnIKbnt4mynn7awrh+yDm4q6rilqWurx7av/UVSTax9
    uMDB5Gf9hF87zHuS24I0EO7TKheRIdO8PLpLPe7a+SYylwmailLfnQZVPw/+Bovj
    2sa0fWRVy3qpvRoovPD77D9XrkS1LG6AaYFOmGboWL62rFB9xTy8vtfSIg+dHs2V
    NWVAVAIwqWMWY5E/WjBdDtZuCwpYl/eztoR6gjJqbI4g9lbpv/NCeAalMM8xKcQj
    /ZdI0j4H0IOVa+HNWwG+J46LDLV0AJcqKrd4PCEEJXUCAwEAAaMeMBwwGgYDVR0R
    BBMwEYIPd3d3LmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQB5bdOZqNae
    7nH69lSbunttLHYRHpkDhS7gNagns3lskq8+sUfanbq6Jf0iSIbwY2UO8M9/vzHb
    OvnhwiXRHMMK1W5E9a3r/9lVApOzdnVlyM0OPiGuubaVYMD7v0dwhEq0eETdrr29
    veI1R/8XSNcJD6XuW5OgQ5gooOL6Ao7aogPIDW3FMwSxm/5nS5xgp+924xFlk8zg
    moyuFiM99eH9OzALcIj21B/iBCrw1eM+BRgbr/azdWortnhPQpQB2LH6AMB2oQn0
    E05HDs1ZJ7Y1ovSrwN5L57YAPvP+87z8OeUkFwgQnu10y3CBuSysmXaFI1N2iv/2
    S5ukJUcRP1RC
    -----END CERTIFICATE-----

input.yaml:

certificate: "{{vault.key(/path/to/key/data)}}"
$ himl input.yaml
certificate: '-----BEGIN CERTIFICATE-----

  MIIC1TCCAb2gAwIBAgIJAIAI+nCNTUAuMA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV

  BAMTD3d3dy5leGFtcGxlLmNvbTAeFw0yMTA0MDkxNTIyMjlaFw0zMTA0MDcxNTIy

  MjlaMBoxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEB

  BQADggEPADCCAQoCggEBAK1klavp8ccE9es+8q2YQc9jRFmUIjwWXEzHQWXjoLQj

  ofqWOGP0XiUikx6Sj6USrgnIKbnt4mynn7awrh+yDm4q6rilqWurx7av/UVSTax9

  uMDB5Gf9hF87zHuS24I0EO7TKheRIdO8PLpLPe7a+SYylwmailLfnQZVPw/+Bovj

  2sa0fWRVy3qpvRoovPD77D9XrkS1LG6AaYFOmGboWL62rFB9xTy8vtfSIg+dHs2V

  NWVAVAIwqWMWY5E/WjBdDtZuCwpYl/eztoR6gjJqbI4g9lbpv/NCeAalMM8xKcQj

  /ZdI0j4H0IOVa+HNWwG+J46LDLV0AJcqKrd4PCEEJXUCAwEAAaMeMBwwGgYDVR0R

  BBMwEYIPd3d3LmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQB5bdOZqNae

  7nH69lSbunttLHYRHpkDhS7gNagns3lskq8+sUfanbq6Jf0iSIbwY2UO8M9/vzHb

  OvnhwiXRHMMK1W5E9a3r/9lVApOzdnVlyM0OPiGuubaVYMD7v0dwhEq0eETdrr29

  veI1R/8XSNcJD6XuW5OgQ5gooOL6Ao7aogPIDW3FMwSxm/5nS5xgp+924xFlk8zg

  moyuFiM99eH9OzALcIj21B/iBCrw1eM+BRgbr/azdWortnhPQpQB2LH6AMB2oQn0

  E05HDs1ZJ7Y1ovSrwN5L57YAPvP+87z8OeUkFwgQnu10y3CBuSysmXaFI1N2iv/2

  S5ukJUcRP1RC

output:

```shell
$ cat output.yaml | yq -r .certificate
-----BEGIN CERTIFICATE-----
MIIC1TCCAb2gAwIBAgIJAIAI+nCNTUAuMA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV
BAMTD3d3dy5leGFtcGxlLmNvbTAeFw0yMTA0MDkxNTIyMjlaFw0zMTA0MDcxNTIy
MjlaMBoxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAK1klavp8ccE9es+8q2YQc9jRFmUIjwWXEzHQWXjoLQj
ofqWOGP0XiUikx6Sj6USrgnIKbnt4mynn7awrh+yDm4q6rilqWurx7av/UVSTax9
uMDB5Gf9hF87zHuS24I0EO7TKheRIdO8PLpLPe7a+SYylwmailLfnQZVPw/+Bovj
2sa0fWRVy3qpvRoovPD77D9XrkS1LG6AaYFOmGboWL62rFB9xTy8vtfSIg+dHs2V
NWVAVAIwqWMWY5E/WjBdDtZuCwpYl/eztoR6gjJqbI4g9lbpv/NCeAalMM8xKcQj
/ZdI0j4H0IOVa+HNWwG+J46LDLV0AJcqKrd4PCEEJXUCAwEAAaMeMBwwGgYDVR0R
BBMwEYIPd3d3LmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQB5bdOZqNae
7nH69lSbunttLHYRHpkDhS7gNagns3lskq8+sUfanbq6Jf0iSIbwY2UO8M9/vzHb
OvnhwiXRHMMK1W5E9a3r/9lVApOzdnVlyM0OPiGuubaVYMD7v0dwhEq0eETdrr29
veI1R/8XSNcJD6XuW5OgQ5gooOL6Ao7aogPIDW3FMwSxm/5nS5xgp+924xFlk8zg
moyuFiM99eH9OzALcIj21B/iBCrw1eM+BRgbr/azdWortnhPQpQB2LH6AMB2oQn0
E05HDs1ZJ7Y1ovSrwN5L57YAPvP+87z8OeUkFwgQnu10y3CBuSysmXaFI1N2iv/2
S5ukJUcRP1RC
-----END CERTIFICATE-----

-----END CERTIFICATE----- '


output:

```shell
$ cat output.yaml | yq -r .certificate
-----BEGIN CERTIFICATE-----
MIIC1TCCAb2gAwIBAgIJAIAI+nCNTUAuMA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV
BAMTD3d3dy5leGFtcGxlLmNvbTAeFw0yMTA0MDkxNTIyMjlaFw0zMTA0MDcxNTIy
MjlaMBoxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAK1klavp8ccE9es+8q2YQc9jRFmUIjwWXEzHQWXjoLQj
ofqWOGP0XiUikx6Sj6USrgnIKbnt4mynn7awrh+yDm4q6rilqWurx7av/UVSTax9
uMDB5Gf9hF87zHuS24I0EO7TKheRIdO8PLpLPe7a+SYylwmailLfnQZVPw/+Bovj
2sa0fWRVy3qpvRoovPD77D9XrkS1LG6AaYFOmGboWL62rFB9xTy8vtfSIg+dHs2V
NWVAVAIwqWMWY5E/WjBdDtZuCwpYl/eztoR6gjJqbI4g9lbpv/NCeAalMM8xKcQj
/ZdI0j4H0IOVa+HNWwG+J46LDLV0AJcqKrd4PCEEJXUCAwEAAaMeMBwwGgYDVR0R
BBMwEYIPd3d3LmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQB5bdOZqNae
7nH69lSbunttLHYRHpkDhS7gNagns3lskq8+sUfanbq6Jf0iSIbwY2UO8M9/vzHb
OvnhwiXRHMMK1W5E9a3r/9lVApOzdnVlyM0OPiGuubaVYMD7v0dwhEq0eETdrr29
veI1R/8XSNcJD6XuW5OgQ5gooOL6Ao7aogPIDW3FMwSxm/5nS5xgp+924xFlk8zg
moyuFiM99eH9OzALcIj21B/iBCrw1eM+BRgbr/azdWortnhPQpQB2LH6AMB2oQn0
E05HDs1ZJ7Y1ovSrwN5L57YAPvP+87z8OeUkFwgQnu10y3CBuSysmXaFI1N2iv/2
S5ukJUcRP1RC
-----END CERTIFICATE-----

Details

At the end, the output is correct but it does not look well in the output.yml file and is difficult to read.