nastra commented on code in PR #9940:
URL: https://github.com/apache/iceberg/pull/9940#discussion_r1523089270


##########
open-api/rest-catalog-open-api.yaml:
##########
@@ -1559,6 +1578,22 @@ components:
             type: string
           description:
             Properties that should be used as default configuration; applied 
before client configuration.
+        capabilities:
+          type: array
+          uniqueItems: true
+          items:
+            type: string
+            enum:

Review Comment:
   In the spec this is just an enumeration of options. The actual impl will 
make sure that this is forward/backward compatible. 
   
   That means old clients talking to a newer server (that returns 
`capabilities`) wouldn't read `capabilities`. Newer clients (that read 
`capabilities`) talking to old servers (not returning `capabilities`) would not 
call any of the optional routes and/or use those capabilities.
   
   Additionally, the implementation would make sure that adding new 
capabilities is safe and also forward/backward compatible. If a server sends 
back `[A, B, C, D]` but the client only knows about `[A, B]`, then `[C, D]` 
will be treated as `UNKNOWN` capabilities. 
   If a client knows about `[A, B, C, D]` but the server only sends back `[A, 
B]`, the client knows that `[C, D]` are not available.
   
   All of this will be handled at the JSON level when parsing `capabilities`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to