diff --git a/examples/e2e/README.md b/examples/e2e/README.md new file mode 100644 index 0000000..105ed7c --- /dev/null +++ b/examples/e2e/README.md @@ -0,0 +1,64 @@ +# End-to-end Configuration Example + +This example demonstrates how to manage configurations across different environments (development and production) using Cloudentity Configuration as Code (CAC). + +## Directory Structure + +``` +e2e/ +├── dev/ +│ └── .env # Development environment variables +├── prod/ +│ └── .env # Production environment variables +├── config.yaml # Main configuration file with profiles +├── data/ # Production configuration files +│ └── workspaces/ +│ └── customer-apps/ +└── data-dev/ # Development configuration files + └── workspaces/ + └── customer-apps/ +``` + +## Usage + +### Pull Configurations + +To pull configuration from development environment: + +```bash +export $(xargs < dev/.env) && cac pull --config config.yaml --workspace customer-apps --profile dev +``` + +To pull configuration from production environment: + +```bash +export $(xargs < prod/.env) && cac pull --config config.yaml --workspace customer-apps +``` + +### Compare Environments + +To compare development and production configurations: + +```bash +export $(xargs < prod/.env) && cac diff --config config.yaml --source dev --target prod --workspace customer-apps +``` + +### Promote Changes + +To promote changes from development to production: + +1. Review the differences: +```bash +export $(xargs < prod/.env) && cac diff --config config.yaml --source dev --target prod --workspace customer-apps +``` + +2. Push the changes to production: +```bash +export $(xargs < prod/.env) && cac push --config config.yaml --workspace customer-apps --method patch +``` + +## Configuration File Structure + +The `config.yaml` file contains profiles for both development and production environments. The default profile is used for production, while the `dev` profile is used for development environment. + +Check the main [README.md](../../README.md) for more details about configuration options and available \ No newline at end of file diff --git a/examples/e2e/base/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml b/examples/e2e/base/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml new file mode 100644 index 0000000..7a2715d --- /dev/null +++ b/examples/e2e/base/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml @@ -0,0 +1,86 @@ +id: customer-apps-demo +application_type: web +application_types: +- server_web +audience: +- customer-apps-demo +authorization_details_types: [] +authorization_signed_response_alg: RS256 +backchannel_logout_session_required: false +backchannel_user_code_parameter: false +client_id_issued_at: 1758231235 +client_name: OAuth2 Demo Portal +client_secret_expires_at: 0 +client_status: active +client_type: oauth2 +default_acr_values: [] +dpop_bound_access_tokens: false +dynamically_registered: false +fdx: + contacts: [] + duration_period: 0 + duration_type: [] + intermediaries: [] + lookback_period: 0 + registry_references: [] +grant_types: +- authorization_code +hashed_rotated_secrets: [] +id_token_signed_response_alg: RS256 +introspection_endpoint_auth_method: client_secret_basic +jwks: + keys: [] +obbr: + webhook_uris: [] +post_logout_redirect_uris: [] +redirect_uris: +- https://{{ env "TENANT_ID" }}.eu.authz.cloudentity.io/{{ env "TENANT_ID" }}/customer-apps/demo +registration_token: + expires_in: 0 +request_object_signing_alg: any +request_uris: [] +require_pushed_authorization_requests: false +response_types: +- id_token +- code +- token +revocation_endpoint_auth_method: client_secret_basic +rotated_secrets: [] +saml_allowed_attributes: [] +saml_metadata: + AdditionalMetadataLocations: [] + AttributeAuthorityDescriptors: [] + AuthnAuthorityDescriptors: [] + CacheDuration: 0 + IDPSSODescriptors: [] + PDPDescriptors: [] + RoleDescriptors: [] + SPSSODescriptors: [] + ValidUntil: 0001-01-01T00:00:00.000Z +saml_override_attributes: false +saml_signing_hash: sha-256 +scopes: +- email +- introspect_tokens +- list_clients_with_access +- manage_consents +- offline_access +- openid +- profile +- revoke_client_access +- revoke_tokens +- view_consents +subject_type: public +system: false +tls_client_certificate_bound_access_tokens: false +token_endpoint_auth_method: client_secret_basic +token_exchange: + actor_claims: [] +token_ttls: + access_token_ttl: 1h0m0s + authorization_code_ttl: 10m0s + id_token_ttl: 1h0m0s + refresh_token_ttl: 168h0m0s +trusted: false +use_custom_token_ttls: false +userinfo_signed_response_alg: none diff --git a/examples/e2e/base/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml b/examples/e2e/base/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml new file mode 100644 index 0000000..f02efba --- /dev/null +++ b/examples/e2e/base/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml @@ -0,0 +1,109 @@ +id: customer-apps-saml-demo +application_type: web +application_types: +- server_web +audience: +- customer-apps-saml-demo +authorization_details_types: [] +authorization_signed_response_alg: RS256 +backchannel_logout_session_required: false +backchannel_user_code_parameter: false +client_name: SAML Demo Portal +client_secret_expires_at: 0 +client_status: active +client_type: saml +default_acr_values: [] +dpop_bound_access_tokens: false +dynamically_registered: false +fdx: + contacts: [] + duration_period: 0 + duration_type: [] + intermediaries: [] + lookback_period: 0 + registry_references: [] +grant_types: +- authorization_code +hashed_rotated_secrets: [] +id_token_signed_response_alg: RS256 +introspection_endpoint_auth_method: client_secret_basic +jwks: + keys: [] +obbr: + webhook_uris: [] +post_logout_redirect_uris: [] +registration_token: + expires_in: 0 +request_object_signing_alg: any +request_uris: [] +require_pushed_authorization_requests: false +revocation_endpoint_auth_method: client_secret_basic +rotated_secrets: [] +saml_allowed_attributes: [] +saml_metadata: + AdditionalMetadataLocations: [] + AttributeAuthorityDescriptors: [] + AuthnAuthorityDescriptors: [] + CacheDuration: 0 + EntityID: https://postmance-dev.eu.authz.cloudentity.io/postmance-dev/customer-apps/saml/demo + IDPSSODescriptors: [] + PDPDescriptors: [] + RoleDescriptors: [] + SPSSODescriptors: + - ArtifactResolutionServices: [] + AssertionConsumerServices: + - Binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST + Index: 1 + IsDefault: false + Location: https://postmance-dev.eu.authz.cloudentity.io/postmance-dev/customer-apps/saml/demo + - Binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact + Index: 2 + IsDefault: false + Location: https://postmance-dev.eu.authz.cloudentity.io/postmance-dev/customer-apps/saml/demo + AttributeConsumingServices: [] + AuthnRequestsSigned: true + CacheDuration: 0 + ContactPeople: [] + KeyDescriptors: + - EncryptionMethods: + - Algorithm: "http://www.w3.org/2001/04/xmlenc#aes128-cbc" + - Algorithm: "http://www.w3.org/2001/04/xmlenc#aes192-cbc" + - Algorithm: "http://www.w3.org/2001/04/xmlenc#aes256-cbc" + - Algorithm: "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" + KeyInfo: + X509Data: + X509Certificates: + - Data: MIIC6jCCAdKgAwIBAgIGAZVrYwqeMA0GCSqGSIb3DQEBCwUAMDYxNDAyBgNVBAMMK09TUkJ1LVJmSVUzZTVaTzZ0TndBSTRLRGRqSG1aSXpIaXY1eDhLaF8yUWMwHhcNMjUwMzA2MTIxNjQ3WhcNMjUxMjMxMTIxNjQ3WjA2MTQwMgYDVQQDDCtPU1JCdS1SZklVM2U1Wk82dE53QUk0S0RkakhtWkl6SGl2NXg4S2hfMlFjMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmFCEjSeg3LDKrI/xWD13jpptxjeaiL1FMc2Xso+2jJa0dJrlN7eErSDpIcGF40BopSJcmb5va6BgjzzFoA7NA9uGfNLnkLAx8Qs81aERhxDuufy8iNqq0B2uqIhN9XCESQLyYNfoe7N26OXLgOgeBUlJOnUo+H27JdIn6TrVlp+tyBQBj5D2MDAzlgVoI3qCTWrTQKGwMGxzkQ0Oeq52WiHu2ONMbN1N7MM7UT1yXDp4DQcll5OrwTLDC/lF8Ow5td9Kf+FfiDHh/iZFlrm4XZ5tr15fcL82ld9Bh3Z5D0Y/6KEmyOJXo3DGYh3v3Hz+I3SrBcdI86hPrF0dxHc0WQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAU8k/l1M7UkLCstV4jHiMzhz4FKRrzBxlkFzfp5EQm9McMW0K9I43XEEh6fdbM37iug2LBp/80KeHJrI0cApflhnXQ6GqkXeyqb0wD9mqU1Mjhw3xWYfxAaeg2MmwpaXX8+bDCHXUDgBdPQDzOlEAS1iqQ4vLX+b8sh6RFXSGlKm/jF13zpKB1krIdoTNAfk+JOrsjpHJ/o8aAk4FiwnPGfrE7QLoHZ8zrUK0HuufEIIUMSsmLb3XAksuvzxKEXdYflsFoa0eV8MiWVcRCImYidzx1ih65ZnGE5WmWUCPJairScnM49K9sAaMvEBmyLYp6xeS3OcCQ5jF50EZTn2WR + Use: encryption + - EncryptionMethods: [] + KeyInfo: + X509Data: + X509Certificates: + - Data: MIIC6jCCAdKgAwIBAgIGAZVrYwqeMA0GCSqGSIb3DQEBCwUAMDYxNDAyBgNVBAMMK09TUkJ1LVJmSVUzZTVaTzZ0TndBSTRLRGRqSG1aSXpIaXY1eDhLaF8yUWMwHhcNMjUwMzA2MTIxNjQ3WhcNMjUxMjMxMTIxNjQ3WjA2MTQwMgYDVQQDDCtPU1JCdS1SZklVM2U1Wk82dE53QUk0S0RkakhtWkl6SGl2NXg4S2hfMlFjMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmFCEjSeg3LDKrI/xWD13jpptxjeaiL1FMc2Xso+2jJa0dJrlN7eErSDpIcGF40BopSJcmb5va6BgjzzFoA7NA9uGfNLnkLAx8Qs81aERhxDuufy8iNqq0B2uqIhN9XCESQLyYNfoe7N26OXLgOgeBUlJOnUo+H27JdIn6TrVlp+tyBQBj5D2MDAzlgVoI3qCTWrTQKGwMGxzkQ0Oeq52WiHu2ONMbN1N7MM7UT1yXDp4DQcll5OrwTLDC/lF8Ow5td9Kf+FfiDHh/iZFlrm4XZ5tr15fcL82ld9Bh3Z5D0Y/6KEmyOJXo3DGYh3v3Hz+I3SrBcdI86hPrF0dxHc0WQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAU8k/l1M7UkLCstV4jHiMzhz4FKRrzBxlkFzfp5EQm9McMW0K9I43XEEh6fdbM37iug2LBp/80KeHJrI0cApflhnXQ6GqkXeyqb0wD9mqU1Mjhw3xWYfxAaeg2MmwpaXX8+bDCHXUDgBdPQDzOlEAS1iqQ4vLX+b8sh6RFXSGlKm/jF13zpKB1krIdoTNAfk+JOrsjpHJ/o8aAk4FiwnPGfrE7QLoHZ8zrUK0HuufEIIUMSsmLb3XAksuvzxKEXdYflsFoa0eV8MiWVcRCImYidzx1ih65ZnGE5WmWUCPJairScnM49K9sAaMvEBmyLYp6xeS3OcCQ5jF50EZTn2WR + Use: signing + ManageNameIDServices: [] + NameIDFormats: + - "" + ProtocolSupportEnumeration: urn:oasis:names:tc:SAML:2.0:protocol + SingleLogoutServices: [] + ValidUntil: 2025-09-20T21:33:55.647Z + WantAssertionsSigned: true + ValidUntil: 2025-09-20T21:33:55.647Z +saml_override_attributes: false +saml_service_provider_id: https://postmance-dev.eu.authz.cloudentity.io/postmance-dev/customer-apps/saml/demo +saml_signing_hash: sha-256 +scopes: [] +subject_type: public +system: false +tls_client_certificate_bound_access_tokens: false +token_endpoint_auth_method: client_secret_basic +token_exchange: + actor_claims: [] +token_ttls: + access_token_ttl: 1h0m0s + authorization_code_ttl: 10m0s + id_token_ttl: 1h0m0s + refresh_token_ttl: 168h0m0s +trusted: false +use_custom_token_ttls: false +userinfo_signed_response_alg: none diff --git a/examples/e2e/base/workspaces/customer-apps/clients/User_Portal.yaml b/examples/e2e/base/workspaces/customer-apps/clients/User_Portal.yaml new file mode 100644 index 0000000..9959059 --- /dev/null +++ b/examples/e2e/base/workspaces/customer-apps/clients/User_Portal.yaml @@ -0,0 +1,96 @@ +id: customer-apps +application_type: web +application_types: +- single_page +- mobile_desktop +audience: +- customer-apps +authorization_details_types: [] +authorization_signed_response_alg: RS256 +backchannel_logout_session_required: false +backchannel_user_code_parameter: false +client_name: User Portal +client_secret_expires_at: 0 +client_status: active +client_type: oauth2 +default_acr_values: [] +dpop_bound_access_tokens: false +dynamically_registered: false +fdx: + contacts: [] + duration_period: 0 + duration_type: [] + intermediaries: [] + lookback_period: 0 + registry_references: [] +grant_types: +- authorization_code +hashed_rotated_secrets: [] +id_token_signed_response_alg: RS256 +introspection_endpoint_auth_method: none +jwks: + keys: [] +obbr: + webhook_uris: [] +post_logout_redirect_uris: [] +redirect_uris: +- https://{{ env "TENANT_ID" }}.eu.authz.cloudentity.io/{{ env "TENANT_ID" }}/customer-apps/app/callback +- https://{{ env "TENANT_ID" }}.eu.authz.cloudentity.io/{{ env "TENANT_ID" }}/customer-apps/app/silent +registration_token: + expires_in: 0 +request_object_signing_alg: any +request_uris: [] +require_pushed_authorization_requests: false +response_types: +- token +- id_token +- code +- code id_token +- token id_token +- token code +- token id_token code +revocation_endpoint_auth_method: none +rotated_secrets: [] +saml_allowed_attributes: [] +saml_metadata: + AdditionalMetadataLocations: [] + AttributeAuthorityDescriptors: [] + AuthnAuthorityDescriptors: [] + CacheDuration: 0 + IDPSSODescriptors: [] + PDPDescriptors: [] + RoleDescriptors: [] + SPSSODescriptors: [] + ValidUntil: 0001-01-01T00:00:00.000Z +saml_override_attributes: false +saml_signing_hash: sha-256 +scopes: +- email +- introspect_tokens +- list_clients_with_access +- manage_consents +- manage_sessions +- manage_ss_profile +- manage_tokens +- offline_access +- openid +- profile +- revoke_client_access +- revoke_tokens +- view_consents +- view_sessions +- view_ss_profile +subject_type: public +system: true +tls_client_certificate_bound_access_tokens: false +token_endpoint_auth_method: none +token_exchange: + actor_claims: [] +token_ttls: + access_token_ttl: 1h0m0s + authorization_code_ttl: 10m0s + id_token_ttl: 1h0m0s + refresh_token_ttl: 168h0m0s +trusted: true +use_custom_token_ttls: false +userinfo_signed_response_alg: none diff --git a/examples/e2e/base/workspaces/customer-apps/server.yaml b/examples/e2e/base/workspaces/customer-apps/server.yaml new file mode 100644 index 0000000..7819c50 --- /dev/null +++ b/examples/e2e/base/workspaces/customer-apps/server.yaml @@ -0,0 +1,310 @@ +access_token_strategy: jwt +access_token_ttl: 1h0m0s +advanced: + acr_values: [] + advertise_only_mtls_aliases_in_well_known: false + block_response_modes: false + cookies_configuration: + same_site: lax + disable_dcr_client_certificate_bound_access_tokens: false + disable_par: false + disable_rar: false + disable_refresh_token_cycling: false + disallow_access_token_in_query_for_protected_resources: false + disallow_code_response_type_without_jarm: false + do_not_issue_acr_claim_in_id_token: false + enforce_acr_values: false + ignore_unknown_scopes_for_dcr: false + require_request_or_request_uri_parameter: false + return_iss_parameter_in_authorization_response: false + single_audience_equals_issuer_in_authentication_jwts: true + strict_post_logout_redirect_enforcement: false +authentication_context_settings: + attributes: + - description: Subject + labels: + - advanced + name: sub + type: string + - description: List of scopes + labels: + - advanced + name: scp + type: string_array + - description: List of groups that user belongs to + labels: [] + name: groups + type: string_array + - description: Email + labels: + - simple + name: email + type: string + - description: Email verified + labels: + - advanced + name: email_verified + type: bool + - description: Phone + labels: + - simple + name: phone_number + type: string + - description: Phone verified + labels: + - advanced + name: phone_number_verified + type: bool + - description: Full mailing address + labels: [] + name: address.formatted + type: string + - description: Full street address + labels: [] + name: address.street_address + type: string + - description: City or locality + labels: [] + name: address.locality + type: string + - description: State, province, prefecture or region + labels: [] + name: address.region + type: string + - description: Country + labels: [] + name: address.country + type: string + - description: Postal code + labels: [] + name: address.postal_code + type: string + - description: Name + labels: [] + name: name + type: string + - description: Given name + labels: + - simple + name: given_name + type: string + - description: Middle name + labels: [] + name: middle_name + type: string + - description: Family name + labels: + - simple + name: family_name + type: string + - description: Nickname + labels: [] + name: nickname + type: string + - description: The primary username that represents the user + labels: + - simple + name: preferred_username + type: string + - description: URL of the profile page + labels: [] + name: profile + type: string + - description: URL of the profile picture + labels: [] + name: picture + type: string + - description: URL of the web page + labels: [] + name: website + type: string + - description: Gender + labels: [] + name: gender + type: string + - description: Birthdate + labels: [] + name: birthdate + type: string + - description: Zoneinfo + labels: [] + name: zoneinfo + type: string + - description: Locale + labels: [] + name: locale + type: string + - description: Last update + labels: [] + name: updated_at + type: number + - description: IDP Subject + labels: [] + name: idp_sub + type: string + - description: Authentication Time + labels: [] + name: auth_time + type: number +authentication_mechanisms: +- totp +- password +- email_otp +- webauthn +authorization_code_ttl: 10m0s +backchannel_token_delivery_modes_supported: +- poll +- ping +backchannel_user_code_parameter_supported: false +cdr: + adr_validation_enabled: true + arrangements_auto_removal: + enabled: false + remove_after_days: 0 + dont_cache_trust_anchor_data: false + industry: banking + skip_register_url_validation: false +color: "#EAB344" +cookie_max_age: 1h0m0s +device_authorization: + request_ttl: 30m0s + user_code_character_set: base20 + user_code_length: 8 +do_not_create_default_claims: false +dynamic_client_registration: + cert_bound_registration_token: false + default_scopes: [] + disable_registration_access_token_expiry: false + disable_registration_token_management: false + disable_registration_token_rotation: false + enabled: false + initial_access_token: + required: false + payload: + format: json + jws_payload: + jwks: + keys: [] + source: server_configuration + registration_access_token_ttl: 720h0m0s +dynamic_scope_separator: . +enable_idp_discovery: true +enable_legacy_clients_with_no_software_statement: false +enable_quick_access: false +enable_trust_anchor: false +enforce_id_token_encryption: false +enforce_pkce: true +enforce_pkce_for_public_clients: true +grant_types: +- authorization_code +- implicit +- client_credentials +- refresh_token +id: customer-apps +id_token_ttl: 1h0m0s +identity_assurance: + attachments: [] + block_verified_claims_via_userinfo: false + digest_algorithms: [] + documents: [] + documents_check_methods: [] + documents_methods: [] + electronic_records: [] + enable_verified_claims: false + evidence: [] + trust_frameworks: [] +idp_discovery: + discovery_mode: domain_matching + enabled: true +initialize: false +jwks: + keys: [] + revoked_encryption_keys: [] + revoked_keys_limit: 0 + revoked_signing_keys: [] + rotated_keys_limit: 0 +key_type: rsa +metadata: + schema: + additionalProperties: false + allOf: [] + anyOf: [] + enum: [] + exclusiveMaximum: 0 + exclusiveMinimum: 0 + hidden: false + maxContains: 0 + maxItems: 0 + maxLength: 0 + maxProperties: 0 + maximum: 0 + minContains: 0 + minItems: 0 + minLength: 0 + minProperties: 0 + minimum: 0 + multipleOf: 0 + oneOf: [] + required: [] + uniqueItems: false +name: customer-apps +obbr: + industry: banking +organization: + domains: [] +profile: consumer +pushed_authorization_request_ttl: 1m0s +refresh_token_ttl: 24h0m0s +require_pushed_authorization_requests: false +response_types: +- token +- id_token +- code +- code id_token +- token id_token +- token code +- token id_token code +rotated_secrets: [] +saml: + signing_hash_algorithms: + - sha-256 + - sha-512 + subject_name_id: mail + subject_name_id_format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress +scope_claim_formats: +- scp_array +settings: + default_client_id: customer-apps +sso: + enabled: false + loa_threshold: 0 + logout_redirect_domains: [] + max_age: 0s + max_idle: 0s +subject_format: hash +subject_identifier_types: +- public +- pairwise +template: false +tenant_id: "" +token_endpoint_auth_methods: +- client_secret_basic +- client_secret_post +- tls_client_auth +- none +token_endpoint_auth_signing_alg_values: +- RS256 +- PS256 +- ES256 +token_endpoint_authn_methods: +- client_secret_basic +- client_secret_post +- tls_client_auth +- none +trust_anchor_configuration: + jwks: + keys: [] +type: regular +version: 3 +workforce: + status: pending diff --git a/examples/e2e/config.yaml b/examples/e2e/config.yaml index c9c161f..79e5108 100644 --- a/examples/e2e/config.yaml +++ b/examples/e2e/config.yaml @@ -5,14 +5,19 @@ client: issuer_url: https://postmance.eu.authz.cloudentity.io/postmance/system client_id: fb346c287c4d4e378cbae39aa0c3fe52 client_secret: invalid_secret + tenant_id: postmance storage: - dir_path: "/tmp/e2e-data" + dir_path: ./prod/,./base/ profiles: - stage: + dev: + logging: + level: info + format: text client: - issuer_url: https://janus.eu.authz.cloudentity.io/janus/system - client_id: fb346c287c4d4e378cbae39aa0cxxxxx + issuer_url: https://postmance-dev.eu.authz.cloudentity.io/postmance-dev/system + client_id: 21ac20db6d0c4b8e8772f82af0a741c2 client_secret: invalid_secret + tenant_id: postmance-dev storage: - dir_path: "/tmp/other" + dir_path: ./dev/,./base/ diff --git a/examples/e2e/dev/.env b/examples/e2e/dev/.env new file mode 100644 index 0000000..76ee7eb --- /dev/null +++ b/examples/e2e/dev/.env @@ -0,0 +1 @@ +TENANT_ID=postmance-dev \ No newline at end of file diff --git a/examples/e2e/dev/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml b/examples/e2e/dev/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml new file mode 100644 index 0000000..d3fe9c6 --- /dev/null +++ b/examples/e2e/dev/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml @@ -0,0 +1,2 @@ +id: customer-apps-demo +app_url: https://postmance-dev.eu.authz.cloudentity.io/postmance-dev/customer-apps/demo \ No newline at end of file diff --git a/examples/e2e/dev/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml b/examples/e2e/dev/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml new file mode 100644 index 0000000..8ca7a75 --- /dev/null +++ b/examples/e2e/dev/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml @@ -0,0 +1,2 @@ +id: customer-apps-saml-demo +app_url: https://postmance-dev.eu.authz.cloudentity.io/postmance-dev/customer-apps/saml/demo diff --git a/examples/e2e/dev/workspaces/customer-apps/clients/User_Portal.yaml b/examples/e2e/dev/workspaces/customer-apps/clients/User_Portal.yaml new file mode 100644 index 0000000..c0e701a --- /dev/null +++ b/examples/e2e/dev/workspaces/customer-apps/clients/User_Portal.yaml @@ -0,0 +1,2 @@ +id: customer-apps +app_url: https://postmance-dev.eu.authz.cloudentity.io/postmance-dev/customer-apps/app \ No newline at end of file diff --git a/examples/e2e/dev/workspaces/customer-apps/server.yaml b/examples/e2e/dev/workspaces/customer-apps/server.yaml new file mode 100644 index 0000000..0ff7ea8 --- /dev/null +++ b/examples/e2e/dev/workspaces/customer-apps/server.yaml @@ -0,0 +1 @@ +id: customer-apps \ No newline at end of file diff --git a/examples/e2e/prod/.env b/examples/e2e/prod/.env new file mode 100644 index 0000000..39bb093 --- /dev/null +++ b/examples/e2e/prod/.env @@ -0,0 +1 @@ +TENANT_ID=postmance \ No newline at end of file diff --git a/examples/e2e/prod/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml b/examples/e2e/prod/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml new file mode 100644 index 0000000..e8c521a --- /dev/null +++ b/examples/e2e/prod/workspaces/customer-apps/clients/OAuth2_Demo_Portal.yaml @@ -0,0 +1,2 @@ +id: customer-apps-demo +app_url: https://postmance.eu.authz.cloudentity.io/postmance/customer-apps/demo diff --git a/examples/e2e/prod/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml b/examples/e2e/prod/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml new file mode 100644 index 0000000..7e4c362 --- /dev/null +++ b/examples/e2e/prod/workspaces/customer-apps/clients/SAML_Demo_Portal.yaml @@ -0,0 +1,2 @@ +id: customer-apps-saml-demo +app_url: https://postmance.eu.authz.cloudentity.io/postmance/customer-apps/saml/demo diff --git a/examples/e2e/prod/workspaces/customer-apps/clients/User_Portal.yaml b/examples/e2e/prod/workspaces/customer-apps/clients/User_Portal.yaml new file mode 100644 index 0000000..a1949bc --- /dev/null +++ b/examples/e2e/prod/workspaces/customer-apps/clients/User_Portal.yaml @@ -0,0 +1,2 @@ +id: customer-apps +app_url: https://postmance.eu.authz.cloudentity.io/postmance/customer-apps/app \ No newline at end of file diff --git a/examples/e2e/prod/workspaces/customer-apps/server.yaml b/examples/e2e/prod/workspaces/customer-apps/server.yaml new file mode 100644 index 0000000..8247957 --- /dev/null +++ b/examples/e2e/prod/workspaces/customer-apps/server.yaml @@ -0,0 +1,2 @@ +id: customer-apps +refresh_token_ttl: 48h0m0s \ No newline at end of file