akamai / cli-eaa

CLI for Enterprise Application Access (EAA)
https://www.akamai.com/us/en/products/security/enterprise-application-access.jsp
Apache License 2.0
24 stars 7 forks source link

URL Based Policies creation doesn't carry the optional "settings" attribute #34

Closed bitonio closed 6 months ago

bitonio commented 1 year ago

Example:

PUT: https://{hostname}/crux/v1/mgmt-pop/apps/{applicationld}/urllocation/{locationld}

{
   "settings": {
      "attribute1": "value1",
      "attribute2": "value2"
   }
}
thayakaw commented 7 months ago

@bitonio

I'm Tatsuya, EM for Suzuki Motor.

Can you please develop and apply a workaround of this issue which following JIRA shows? https://track.akamai.com/jira/browse/ZTESC-3471

This issue is caused due to API issue, but it we don't have the ETA of the fix. Suzuki wants us to fix it earlier. So we need the workaround on the CLI.

Please let me know if you have any questions. Thanks.

bitonio commented 7 months ago

Hi @thayakaw,

I've have prepared a code change. I'll follow-up on the JIRA ticket and we should be able to release the new version very soon.

thayakaw commented 7 months ago

Hi @bitonio , Thank you so much. Please let me know once you release the new version. After that, I'll test it and inform Suzuki.

bitonio commented 7 months ago

Should be ready with version 0.6.6. Will close this ticket is about a week, feel free to test.

thayakaw commented 7 months ago

Thank you. I'll test it and share the update with Suzuki.

thayakaw commented 6 months ago

Hi @bitonio I've tested it with EAA CLI 0.6.6, but it looks still not working. Can you please look into it?

When I create the app and URL path based policy without setting attribute, URL path based policy is created successfully. 0426sample19.json 0426sample19_result.json スクリーンショット 2024-04-27 午前8 12 30

When I create the app and URL path based policy with setting attribute, other parameters become blank. This is the issue what I reported. 0426sample20.json 0426sample20_result.json スクリーンショット 2024-04-27 午前8 12 54

What we want to do is creating URL path based policy with setting parameter, especially "disable caching".

Thank you.

bitonio commented 6 months ago

Thanks for providing the example, I'll compare with my own testing, and fix the issue. Give me until mid next week.

bitonio commented 6 months ago

Hi

I am testing now with 0.6.6. Here's what I've learned: If the EAA API receive just one attribute-key under settings, it doesn't apply any default value, so when the portal load the document, with no values, UI paint everything blank.

On the other hand, if you create an app and grab the default values set by the portal, you should see these values in the portal as well.

That's what I got:

"settings": {
                "anonymous_server_conn_limit": "50",
                "anonymous_server_request_limit": "100",
                "app_auth": "none",
                "app_server_read_timeout": "60",
                "authenticated_server_conn_limit": "50",
                "authenticated_server_request_limit": "100",
                "authentication_enabled": "true",
                "health_check_fall": "3",
                "health_check_http_url": "/",
                "health_check_http_version": "1.1",
                "health_check_interval": "30000",
                "health_check_rise": "2",
                "health_check_timeout": "50000",
                "health_check_type": "0",
                "hidden_app": "false",
                "http_only_cookie": "true",
                "https_sslv3": "false",
                "idle_close_time_seconds": "1200",
                "idle_conn_ceil": "75",
                "idle_conn_floor": "50",
                "idle_conn_step": "10",
                "ignore_cname_resolution": "false",
                "inject_ajax_javascript": "off",
                "kerberos_negotiate_once": "off",
                "load_balancing_metric": "round-robin",
                "logging_enabled": "true",
                "login_timeout": "5",
                "mfa": "inherit",
                "preauth_enforce_url": "",
                "proxy_buffer_size_kb": "4",
                "proxy_disable_clipboard": "false",
                "rate_limit": "on",
                "refresh_sticky_cookie": "on",
                "request_body_rewrite": "false",
                "saas_enabled": "false",
                "sentry_redirect_401": "off",
                "server_cert_validate": "true",
                "server_request_burst": "100",
                "session_sticky": "false",
                "session_sticky_cookie_maxage": "0",
                "spdy_enabled": "true",
                "ssh_audit_enabled": "false",
                "sso": "true",
                "use_internal_host": "false",
                "user_name": "",
                "wapp_auth": "form",
                "websocket_enabled": "true"
            }

When creating an app with this, it comes through and I can see all settings properly read and set in the portal UI.

thayakaw commented 6 months ago

Hi @bitonio , Thanks for the update. When I create the app with all parameters with following, it works. 0426sample27.json

It is definitely a workaround, but I think it doesn't make sense for including all parameters in client. So I think following methods make customer happy.

  1. CLI fill out other default parameters in background
  2. API fixes the issue

What do you think?

bitonio commented 6 months ago

Thanks for confirming. On 1. Sounds possible. I'll check internally how these default parameter applies - if they are always the same or varies depending on the nature of the app. Then we can bake it in. Agree on 2. I'll file a ticket for this.

bitonio commented 6 months ago

Hi -- After some internal discussion, I have a lead to fix the issue on the CLI without any backend changes. I am working on this, my goal is to bundle this change with the regression you reported in #41.

thayakaw commented 6 months ago

Sounds good. Thank you for your support. Please let me know once the change is completed. I'll test it in my lab.

bitonio commented 6 months ago

Hi -- I just dropped v0.6.7 with a fix that should allow you to set any advanced settings attribute and still keeping all the default from the backend. I am closing this ticket for now, feel free to reopen it, or a new one if you spot any issue.