[ 
https://issues.apache.org/jira/browse/FLINK-39364?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-39364:
-----------------------------------
    Labels: pull-request-available  (was: )

>  [CONNECTOR-HTTP] Add request timeout as typed ConfigOption for HTTP lookup 
> source and sink
> -------------------------------------------------------------------------------------------
>
>                 Key: FLINK-39364
>                 URL: https://issues.apache.org/jira/browse/FLINK-39364
>             Project: Flink
>          Issue Type: New Feature
>          Components: Connectors / HTTP
>            Reporter: featzhang
>            Priority: Minor
>              Labels: pull-request-available
>
> h2. Summary
>   {{http.source.lookup.request.timeout}} and {{http.sink.request.timeout}} 
> were consumed at runtime but never declared as typed {{ConfigOption}}
>   definitions, causing Flink's factory validation to reject them with an 
> "Unsupported options" error when specified in SQL DDL.
>   h2. Problem
>   Both timeout keys are defined as raw string constants in 
> {{HttpConnectorConfigConstants}} and read at runtime, but are absent from 
> {{optionalOptions()}}
>   in their respective factory classes. This means:
>   # Users configuring these options via SQL DDL {{WITH}} clause receive a 
> {{ValidationException}}
>   # There is no type safety, default value enforcement, or IDE auto-completion
>   # A TODO comment in {{HttpLookupTableSourceFactory}} acknowledges this gap:
>   {code:java}
>   SOURCE_LOOKUP_CONNECTION_TIMEOUT // TODO: add request timeout from 
> properties
>   {code}
>   h2. Steps to Reproduce
>   {code:sql}
>   CREATE TABLE http_lookup (
>     id BIGINT,
>     name STRING
>   ) WITH (
>     'connector' = 'http',
>     'url' = 'http://localhost/api',
>     'format' = 'json',
>     'lookup-method' = 'GET',
>     'http.source.lookup.request.timeout' = '60s'
>   );
>   {code}
>   *Result:*
>   {noformat}
>   org.apache.flink.table.api.ValidationException: Unsupported options found 
> for 'http'.
>   Unsupported options:
>   http.source.lookup.request.timeout
>   {noformat}
>   h2. Fix
>   # Define {{ConfigOption<Duration>}} for both options with default value 
> {{30s}}:
>   ** {{HttpLookupConnectorOptions.SOURCE_LOOKUP_REQUEST_TIMEOUT}}
>   ** {{HttpDynamicSinkConnectorOptions.SINK_REQUEST_TIMEOUT}}
>   # Register both in {{optionalOptions()}} of their factory classes
>   # Update documentation to reflect the {{Duration}} type (e.g. {{'30s'}}, 
> {{'1min'}})
>   h2. Related
>   * PR: https://github.com/apache/flink-connector-http/pull/31



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to