Hier ist, was ich am Ende benutze, weil ich nicht scheinen kann, um den variablen Ersatz in guter Ordnung zu bekommen. In Anbetracht der Play-Framework HOCON Abschnitt für CORS erlaubt Origins, die für die lokale ermöglicht, Entwickler, Bühnen- und Produktionsbereitstellung und ist nicht 12-Faktor-konform:Typesafe config HOCON - Anleitung für den variablen Austausch von Listen in der Umgebung?
play {
# https://www.playframework.com/documentation/2.5.x/resources/confs/filters-helpers/reference.conf
filters {
# use default values for gzip, csrf & security headers
# setup cors
cors {
# whitelist all paths
pathPrefixes = ["/"]
allowedOrigins = [
"http://localhost:8080"
"http://app.127.0.0.1.nip.io:8080"
"http://app.192.168.64.2.nip.io"
"http://app.192.168.42.173.nip.io"
"http://app.terradatum.local"
"http://app.dev.terradatum.com"
"https://app.dev.terradatum.com"
"http://app.stage.terradatum.com"
"https://app.stage.terradatum.com"
"http://app.terradatum.com"
"https://app.terradatum.com"
]
}
}
}
ich die beiden folgenden HOCON versucht haben, mit der Umwelt gesetzt wird, wie auch gezeigt:
# HOCON
allowedOrigins = ${?APP_ALLOWED_ORIGINS}
# ENV
export APP_ALLOWED_ORIGINS='"http://app.127.0.0.1.nip.io:8080","http://app.192.168.64.2.nip.io","http://app.192.168.42.173.nip.io","http://app.terradatum.local","http://app.dev.terradatum.com","https://app.dev.terradatum.com","http://app.stage.terradatum.com","https://app.stage.terradatum.com","http://app.terradatum.com","https://app.terradatum.com"'
und ...
# HOCON
allowedOrigins = [
${?APP_ALLOWED_ORIGINS}
"http://app.127.0.0.1.nip.io:8080"
"http://app.192.168.64.2.nip.io"
"http://app.192.168.42.173.nip.io"
"http://app.terradatum.local"
"http://app.dev.terradatum.com"
"https://app.dev.terradatum.com"
"http://app.stage.terradatum.com"
"https://app.stage.terradatum.com"
"http://app.terradatum.com"
"https://app.terradatum.com"
]
# ENV
export APP_ALLOWED_ORIGINS="http://some-new-cors.terradatum.com\nhttps://some-new-cors.terradatum.com\n"
Viele andere CORS-Implementierungen ermöglichen regex und WTH nicht spielen?
Davon abgesehen, die HOCON Bearbeitung von Listen für mich sehr problematisch war ... mit der ersten Implementierung oben arbeiten, aber jede Iteration, wo ich eine vorhandene, Standardliste in den application.conf
versagt ...
Was ist die empfohlene Methode zum Hinzufügen von Listen oder Listenelementen zu HOCON über das Ersetzen von Umgebungsvariablen?
Das ist eine Antwort, aber nicht wirklich das, wonach ich suche ... obwohl du einen guten Punkt machst und ich meine Frage aktualisiert habe, um tatsächlich eine Frage einzubeziehen. Wenn Sie die Anleitung für eine 12-Faktor-Anwendung lesen, stellen Sie fest, dass die Konfiguration Ihrer Anwendung über die Umgebung grundlegend geändert werden muss. Natürlich ist das nicht 100% ig möglich (eingebettete 'reference.conf'-Dateien, die nicht dem env-replacement-Schema folgen) und vielleicht ist die CORS-erlaubte Herkunft nicht das beste Beispiel, aber es ist immer noch etwas, was ich brauche lösen. – rbellamy
Ja, Sie haben den zweiten Teil meiner Frage - "Hinzufügen eines Listenelements" zu einer HOCON-Liste - beantwortet – rbellamy