Uploaded image for project: 'Couchbase C client library libcouchbase'
  1. Couchbase C client library libcouchbase
  2. CCBC-1216

Add support for user impersonation

    XMLWordPrintable

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.2.2
    • library

    Description

      Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

      From internal discussions, note that we will need to perform the following:

      1. Review the User Impersonation SDK-RFC on this topic to be sure we're being consistent with the RFC and Go implementation.
      2. Refactor the framing extras (flexible extras) logic to support the new user impersonation framing extra.
      3. Also note that any services using HTTP will need to pass the new cb-on-behalf-of header value. See the Go SDK implementation for reference if needed.
      4. We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using onbehalfof. For example, for a Query request command, it will be: lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len) and for a KV store command it would be lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len).

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            brett19 Brett Lawson created issue -
            brett19 Brett Lawson made changes -
            Field Original Value New Value
            Link This issue blocks CBD-3347 [ CBD-3347 ]
            avsej Sergey Avseyev made changes -
            Status New [ 10003 ] Open [ 1 ]
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.0.2 [ 16717 ]
            brett19 Brett Lawson made changes -
            Story Points 1
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.0.3 [ 16778 ]
            Fix Version/s 3.0.2 [ 16717 ]
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Labels 6.6.0 sdk-3-1
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.0.4 [ 16919 ]
            Fix Version/s 3.0.3 [ 16778 ]
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.0.5 [ 17057 ]
            Fix Version/s 3.0.4 [ 16919 ]
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.0.6 [ 17114 ]
            Fix Version/s 3.0.6 [ 17114 ]
            Fix Version/s 3.0.5 [ 17057 ]
            avsej Sergey Avseyev made changes -
            Component/s tools [ 13412 ]
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.0.7 [ 17120 ]
            Fix Version/s 3.0.6 [ 17114 ]
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Labels 6.6.0 sdk-3-1 sdk-3-2
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Remote Link This issue links to "Page (Couchbase, Inc. Wiki)" [ 20977 ]
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.0.8 [ 17210 ]
            Fix Version/s 3.0.7 [ 17120 ]
            avsej Sergey Avseyev made changes -
            Component/s library [ 10110 ]
            Component/s tools [ 13412 ]
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.1.0 [ 17008 ]
            Fix Version/s 3.0.8 [ 17210 ]
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Labels sdk-3-2 sdk-cheshirecat
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Remote Link This issue links to "Page (Couchbase, Inc. Wiki)" [ 21817 ]
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Remote Link This issue links to "Page (Couchbase, Inc. Wiki)" [ 20977 ]
            pablo.silberkasten Pablo Silberkasten (Inactive) made changes -
            Sprint SDK22: Ubuntu - User Impers. [ 1518 ]
            pablo.silberkasten Pablo Silberkasten (Inactive) made changes -
            Rank Ranked lower
            ingenthr Matt Ingenthron made changes -
            Sprint SDK22: Ubuntu - User Impers. [ 1518 ]
            ingenthr Matt Ingenthron made changes -
            Rank Ranked higher
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Remote Link This issue links to "Page (Couchbase, Inc. Wiki)" [ 21817 ]
            ingenthr Matt Ingenthron made changes -
            Fix Version/s 3.2.0 [ 17008 ]
            brett19 Brett Lawson made changes -
            Labels sdk-cheshirecat post-7.0
            ray.cardillo Ray Cardillo made changes -
            Description The SDK should implement user impersonation. See the parent ticket for more information. Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            ray.cardillo Ray Cardillo made changes -
            Description Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # Also note that any services using HTTP will need to pass the new *{{on-behalf-of}}* header value.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            ray.cardillo Ray Cardillo made changes -
            Description Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # Also note that any services using HTTP will need to pass the new *{{on-behalf-of}}* header value.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # Also note that any services using HTTP will need to pass the new *{{on-behalf-of}}* header value. See the Go SDK implementation for reference if needed.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            ray.cardillo Ray Cardillo made changes -
            Description Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # Also note that any services using HTTP will need to pass the new *{{on-behalf-of}}* header value. See the Go SDK implementation for reference if needed.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # Also note that any services using HTTP will need to pass the new *{{cb-on-behalf-of}}* header value. See the Go SDK implementation for reference if needed.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            ray.cardillo Ray Cardillo made changes -
            Description Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # Also note that any services using HTTP will need to pass the new *{{cb-on-behalf-of}}* header value. See the Go SDK implementation for reference if needed.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            Implement user impersonation as specified. See the parent ticket for more information and reference to the Go SDK which has already been completed.

            From internal discussions, note that we will need to perform the following:
             # Review the [User Impersonation SDK-RFC|https://docs.google.com/document/d/18FTOTIHktHjrntMT2A4qApZco7i5FZwlTEqUcyaquqo/edit#] on this topic to be sure we're being consistent with the RFC and Go implementation.
             # Refactor the framing extras (flexible extras) logic to support the new *user impersonation framing extra*.
             # Also note that any services using HTTP will need to pass the new *{{cb-on-behalf-of}}* header value. See the Go SDK implementation for reference if needed.
             # We will introduce internal functions (not shown on the public interface) for each of the affected command functions based on a consistent pattern using *{{onbehalfof}}*. For example, for a Query request command, it will be: *{{lcb_cmdquery_onbehalfof(lcb_CMDQUERY *cmd, const char *user, size_t user_len)}}* and for a KV store command it would be *{{lcb_cmdstore_onbehalfof(lcb_CMDSTORE *cmd, const char *user, size_t user_len)}}*.
            ray.cardillo Ray Cardillo made changes -
            Labels post-7.0 neo post-7.0
            ray.cardillo Ray Cardillo made changes -
            Sprint SDK34: CB++, OBO [ 1717 ]
            ray.cardillo Ray Cardillo made changes -
            Rank Ranked higher
            avsej Sergey Avseyev made changes -
            Fix Version/s 3.2.2 [ 17647 ]
            ray.cardillo Ray Cardillo made changes -
            Epic Link CBD-3347 [ 125151 ]
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Labels neo post-7.0 sdkapi-3.3
            arun.vijayraghavan Arun Vijayraghavan made changes -
            Remote Link This issue links to "Page (Couchbase, Inc. Wiki)" [ 23007 ]
            avsej Sergey Avseyev made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            ray.cardillo Ray Cardillo made changes -
            Link This issue relates to MB-47817 [ MB-47817 ]
            ray.cardillo Ray Cardillo made changes -
            Sprint SDK34: CB++, OBO, Connect Prep [ 1717 ] SDK34: CB++, OBO, Connect Prep, SDK36: Connect Prep/Recording [ 1717, 1718 ]
            ray.cardillo Ray Cardillo made changes -
            Rank Ranked higher
            avsej Sergey Avseyev made changes -
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Resolved [ 5 ]

            People

              avsej Sergey Avseyev
              brett19 Brett Lawson
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty