Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,11 @@ public Application updateApplication(String projectId, String newName, String si
return GrpcUtil.executeGrpcCall(blockingStub, ApplicationServiceGrpc.ApplicationServiceBlockingStub::updateApplication, request, Constants.OP_UPDATE_APP);
}

public Application addEntitlement(String projectId, String signature, String message, String tenantName) {
ApplicationById request = ApplicationById.newBuilder().setId(Long.parseLong(projectId)).setSignature(signature).setMessage(message).setTenantName(tenantName).build();
return GrpcUtil.executeGrpcCall(blockingStub, ApplicationServiceGrpc.ApplicationServiceBlockingStub::addEntitlement, request, Constants.OP_ADD_APP_ENTITLEMENT);
}

public ApplicationResponseMessage deleteApplication(String projectId, String signature, String message, String tenantName) {
ApplicationById request = ApplicationById.newBuilder().setId(Long.parseLong(projectId)).setSignature(signature).setMessage(message).setTenantName(tenantName).build();
return GrpcUtil.executeGrpcCall(blockingStub, ApplicationServiceGrpc.ApplicationServiceBlockingStub::deleteApplication, request, Constants.OP_DELETE_APP);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public class Constants {

// Operation constants for error messages
public static final String OP_CREATE_APP = "application creation";
public static final String OP_ADD_APP_ENTITLEMENT = "application entitlement increment";
public static final String OP_UPDATE_APP = "application update";
public static final String OP_DELETE_APP = "application deletion";
public static final String OP_GET_APP = "retrieving application";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ message Application {
string legalTermsOfService=7;
string quota_last_updated=8;
int64 quota=9;
int64 entitlement_multiplier = 10;
int64 entitlements_consumed = 11;
int64 effective_initial_quota = 12;
int64 effective_monthly_quota = 13;
}

message CreateApplicationRequest {
Expand Down Expand Up @@ -77,6 +81,7 @@ service ApplicationService {
rpc CreateApplication(CreateApplicationRequest) returns (Application) {}
rpc GetApplication(ApplicationById) returns (Application) {}
rpc UpdateApplication(UpdateApplicationRequest) returns (Application) {}
rpc AddEntitlement(ApplicationById) returns (Application) {}
rpc DeleteApplication(ApplicationById) returns (ApplicationResponseMessage) {}
rpc ListApplications(ApplicationByTenantName) returns (ApplicationList) {}
rpc ListApplicationsByEntitlement(ApplicationById) returns (ApplicationList) {}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Copyright 2021-2026 Open Text.
*
* The only warranties for products and services of Open Text
* and its affiliates and licensors ("Open Text") are as may
* be set forth in the express warranty statements accompanying
* such products and services. Nothing herein should be construed
* as constituting an additional warranty. Open Text shall not be
* liable for technical or editorial errors or omissions contained
* herein. The information contained herein is subject to change
* without notice.
*/
package com.fortify.cli.aviator.app.cli.cmd;

import com.fasterxml.jackson.databind.JsonNode;
import com.fortify.aviator.application.Application;
import com.fortify.cli.aviator._common.config.admin.helper.AviatorAdminConfigDescriptor;
import com.fortify.cli.aviator._common.exception.AviatorSimpleException;
import com.fortify.cli.aviator._common.exception.AviatorTechnicalException;
import com.fortify.cli.aviator._common.output.cli.cmd.AbstractAviatorAdminSessionOutputCommand;
import com.fortify.cli.aviator._common.util.AviatorGrpcUtils;
import com.fortify.cli.aviator._common.util.AviatorSignatureUtils;
import com.fortify.cli.aviator.grpc.AviatorGrpcClient;
import com.fortify.cli.aviator.grpc.AviatorGrpcClientHelper;
import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins;
import com.fortify.cli.common.output.transform.IActionCommandResultSupplier;

import lombok.Getter;
import picocli.CommandLine.Command;
import picocli.CommandLine.Mixin;
import picocli.CommandLine.Parameters;

@Command(name = "add-entitlement")
public class AviatorAppAddEntitlementCommand extends AbstractAviatorAdminSessionOutputCommand implements IActionCommandResultSupplier {
@Getter @Mixin private OutputHelperMixins.TableNoQuery outputHelper;
@Parameters(index = "0") private Long applicationId;

@Override
protected JsonNode getJsonNode(AviatorAdminConfigDescriptor configDescriptor) throws AviatorSimpleException, AviatorTechnicalException {
try (AviatorGrpcClient client = AviatorGrpcClientHelper.createClient(configDescriptor.getAviatorUrl())) {
String[] messageAndSignature = AviatorSignatureUtils.createMessageAndSignature(
configDescriptor,
configDescriptor.getTenant(),
applicationId.toString(),
"add-entitlement");
String message = messageAndSignature[0];
String signature = messageAndSignature[1];
Application updatedApplication = client.addEntitlement(applicationId.toString(), signature, message, configDescriptor.getTenant());
return AviatorGrpcUtils.grpcToJsonNode(updatedApplication);
}
}

@Override
public boolean isSingular() {
return true;
}

@Override
public String getActionCommandResult() {
return "UPDATED";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
name = "app",
subcommands = {
AviatorAppCreateCommand.class,
AviatorAppAddEntitlementCommand.class,
AviatorAppDeleteCommand.class,
AviatorAppGetCommand.class,
AviatorAppListCommand.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ fcli.aviator.app.create.usage.header = Create a new SAST Aviator application.
fcli.aviator.app.create.usage.description = Creates a new Aviator application within the tenant specified in the admin configuration.
fcli.aviator.app.create.name = Name of the application to create.

fcli.aviator.app.add-entitlement.usage.header = Add one entitlement to an existing SAST Aviator application.
fcli.aviator.app.add-entitlement.usage.description = Increments an existing Aviator application's entitlement multiplier by one and returns the updated application details.
fcli.aviator.app.add-entitlement.applicationId = ID of the application to update.

fcli.aviator.app.delete.usage.header = Delete an SAST Aviator application.
fcli.aviator.app.delete.usage.description = Deletes an Aviator application by its ID from the tenant specified in the admin configuration.
fcli.aviator.app.delete.applicationId = ID of the application to delete.
Expand Down Expand Up @@ -190,9 +194,10 @@ fcli.aviator.session.output.table.args = name,type,url,created,expires,expired
fcli.aviator.admin-config.output.table.args = name,type,url,created
fcli.aviator.ssc.audit.output.table.args = id,application.name,name,artifactId,action
fcli.aviator.app.create.output.table.args = id,name,entitlement_id,disclaimer,quota_last_updated,quota
fcli.aviator.app.add-entitlement.output.table.args = id,name,entitlement_id,entitlement_multiplier,entitlements_consumed,quota_last_updated,quota
fcli.aviator.app.delete.output.table.args = message
fcli.aviator.app.get.output.table.args = id,name,updated_at,quota_last_updated,quota
fcli.aviator.app.list.output.table.args = id,name,entitlement_id,created_at,quota_last_updated,quota
fcli.aviator.app.get.output.table.args = id,name,entitlement_id,entitlement_multiplier,entitlements_consumed,updated_at,quota_last_updated,quota
fcli.aviator.app.list.output.table.args = id,name,entitlement_id,entitlement_multiplier,entitlements_consumed,created_at,quota_last_updated,quota
fcli.aviator.app.update.output.table.args = id,name,updated_at,quota_last_updated,quota
fcli.aviator.token.create.output.table.args = token_name,start_date,expiry_date,token
fcli.aviator.token.delete.output.table.args = message
Expand Down
Loading