influxdata/influxdb-client-java

How to get authorization description using authorization api

blackstar-baba opened this issue · 3 comments

Proposal:
I'am using version 6.5.0, but i can't find authorization description when using authorization api.

Current behavior:
I can't get authorization description when using authorization api.
e.g.

AuthorizationsApi authorizationsApi = adminInfluxDBClient.getAuthorizationsApi();
List<Authorization>  Authorization= authorizationsApi.findAuthorizationsByOrgID("orgName");

Desired behavior:
I need authorization description.

Use Authorization createAuthorization(@Nonnull final Authorization authorization) can set description

Hi @blackstar-baba,

thanks for using our client.

You can use something like this to create and list your authorisation:

package example;

import java.util.ArrayList;
import java.util.List;

import com.influxdb.client.AuthorizationsApi;
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.client.domain.Authorization;
import com.influxdb.client.domain.Organization;
import com.influxdb.client.domain.Permission;
import com.influxdb.client.domain.PermissionResource;

public class PlatformExample {

    public static void main(final String[] args) throws Exception {

        String url = "http://localhost:9999";
        String token = "my-token";
        String org = "my-org";
        try (InfluxDBClient client = InfluxDBClientFactory.create(url, token.toCharArray())) {

            Organization organization = client.getOrganizationsApi()
                    .findOrganizations()
                    .stream()
                    .filter(it -> org.equals(it.getName())).findFirst()
                    .get();

            AuthorizationsApi api = client.getAuthorizationsApi();
            // create authorization to create Bucket
            {
                PermissionResource resource = new PermissionResource();
                resource.setOrgID(organization.getId());
                resource.setType(PermissionResource.TYPE_BUCKETS);

                Permission createBucket = new Permission();
                createBucket.setResource(resource);
                createBucket.setAction(Permission.ActionEnum.WRITE);

                List<Permission> permissions = new ArrayList<>();
                permissions.add(createBucket);

                Authorization authorization = new Authorization();
                authorization.setOrgID(organization.getId());
                authorization.setPermissions(permissions);
                authorization.setStatus(Authorization.StatusEnum.ACTIVE);
                authorization.setDescription("My new authorization");
                api.createAuthorization(authorization);
            }

            // list all authorization
            {
                List<Authorization> authorization = api.findAuthorizationsByOrg(organization);
                authorization
                        .forEach(it -> System.out.printf("Authorization: %s, description: %s%n", it.getId(), it.getDescription()));
            }
        }

    }
}

Regards