Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

Commit

Permalink
add Audit annotation to mark endpoints for audit purposes
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Lich committed Dec 11, 2018
1 parent b6a2fde commit 8576de5
Show file tree
Hide file tree
Showing 13 changed files with 86 additions and 44 deletions.
35 changes: 35 additions & 0 deletions core/src/main/java/com/netflix/conductor/annotations/Audit.java
@@ -0,0 +1,35 @@
/**
* Copyright 2018 Netflix, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
*
*/
package com.netflix.conductor.annotations;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
* Audit for the API and gRPC calls
* Annotation
*/
@Target({TYPE})
@Retention(RUNTIME)
public @interface Audit {

}
@@ -1,21 +1,21 @@
package com.netflix.conductor.grpc.server.service;

import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.core.events.EventProcessor;
import com.netflix.conductor.core.events.EventQueues;
import com.netflix.conductor.grpc.EventServiceGrpc;
import com.netflix.conductor.grpc.EventServicePb;
import com.netflix.conductor.grpc.ProtoMapper;
import com.netflix.conductor.proto.EventHandlerPb;
import com.netflix.conductor.service.MetadataService;

import java.util.Map;

import javax.inject.Inject;

import io.grpc.stub.StreamObserver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Inject;
import java.util.Map;

@Audit
public class EventServiceImpl extends EventServiceGrpc.EventServiceImplBase {
private static final Logger LOGGER = LoggerFactory.getLogger(EventServiceImpl.class);
private static final ProtoMapper PROTO_MAPPER = ProtoMapper.INSTANCE;
Expand Down
@@ -1,17 +1,17 @@
package com.netflix.conductor.grpc.server.service;

import com.netflix.conductor.annotations.Audit;
import com.netflix.runtime.health.api.HealthCheckAggregator;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Inject;

import io.grpc.health.v1.HealthCheckRequest;
import io.grpc.health.v1.HealthCheckResponse;
import io.grpc.health.v1.HealthGrpc;
import io.grpc.stub.StreamObserver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Inject;

@Audit
public class HealthServiceImpl extends HealthGrpc.HealthImplBase {
private static final Logger LOGGER = LoggerFactory.getLogger(HealthServiceImpl.class);
private static final GRPCHelper GRPC_HELPER = new GRPCHelper(LOGGER);
Expand Down
@@ -1,27 +1,25 @@
package com.netflix.conductor.grpc.server.service;

import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.common.metadata.tasks.TaskDef;
import com.netflix.conductor.common.metadata.workflow.WorkflowDef;
import com.netflix.conductor.core.execution.ApplicationException;
import com.netflix.conductor.grpc.MetadataServiceGrpc;
import com.netflix.conductor.grpc.MetadataServicePb;
import com.netflix.conductor.grpc.ProtoMapper;
import com.netflix.conductor.grpc.WorkflowServicePb;
import com.netflix.conductor.proto.TaskDefPb;
import com.netflix.conductor.proto.WorkflowDefPb;
import com.netflix.conductor.service.MetadataService;

import io.grpc.Status;
import io.grpc.stub.StreamObserver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Inject;
import java.util.List;
import java.util.stream.Collectors;

import javax.inject.Inject;

import io.grpc.Status;
import io.grpc.stub.StreamObserver;

@Audit
public class MetadataServiceImpl extends MetadataServiceGrpc.MetadataServiceImplBase {
private static final Logger LOGGER = LoggerFactory.getLogger(MetadataServiceImpl.class);
private static final ProtoMapper PROTO_MAPPER = ProtoMapper.INSTANCE;
Expand Down
@@ -1,30 +1,29 @@
package com.netflix.conductor.grpc.server.service;

import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.common.metadata.tasks.Task;
import com.netflix.conductor.common.metadata.tasks.TaskExecLog;
import com.netflix.conductor.common.metadata.tasks.TaskResult;
import com.netflix.conductor.core.config.Configuration;
import com.netflix.conductor.dao.QueueDAO;
import com.netflix.conductor.grpc.ProtoMapper;
import com.netflix.conductor.proto.TaskPb;
import com.netflix.conductor.grpc.TaskServiceGrpc;
import com.netflix.conductor.grpc.TaskServicePb;
import com.netflix.conductor.proto.TaskPb;
import com.netflix.conductor.service.ExecutionService;
import io.grpc.Status;
import io.grpc.stub.StreamObserver;

import com.netflix.conductor.common.metadata.tasks.Task;
import com.netflix.conductor.service.ExecutionService;
import com.netflix.conductor.core.config.Configuration;
import com.netflix.conductor.dao.QueueDAO;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Inject;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Audit
public class TaskServiceImpl extends TaskServiceGrpc.TaskServiceImplBase {
private static final Logger LOGGER = LoggerFactory.getLogger(TaskServiceImpl.class);
private static final ProtoMapper PROTO_MAPPER = ProtoMapper.INSTANCE;
Expand Down
Expand Up @@ -15,6 +15,7 @@
*/
package com.netflix.conductor.grpc.server.service;

import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.common.metadata.workflow.SkipTaskRequest;
import com.netflix.conductor.common.metadata.workflow.StartWorkflowRequest;
import com.netflix.conductor.common.run.SearchResult;
Expand Down Expand Up @@ -42,6 +43,7 @@
import java.util.Arrays;
import java.util.List;

@Audit
public class WorkflowServiceImpl extends WorkflowServiceGrpc.WorkflowServiceImplBase {
private static final Logger LOGGER = LoggerFactory.getLogger(TaskServiceImpl.class);
private static final ProtoMapper PROTO_MAPPER = ProtoMapper.INSTANCE;
Expand Down
Expand Up @@ -16,6 +16,7 @@

package com.netflix.conductor.server.resources;

import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.common.metadata.tasks.Task;
import com.netflix.conductor.service.AdminService;
import io.swagger.annotations.Api;
Expand Down Expand Up @@ -44,6 +45,7 @@
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
@Singleton
@Audit
public class AdminResource {
private final AdminService adminService;

Expand Down
Expand Up @@ -16,8 +16,11 @@

package com.netflix.conductor.server.resources;

import java.util.List;
import java.util.Map;
import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.common.metadata.events.EventHandler;
import com.netflix.conductor.service.EventService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import javax.inject.Inject;
import javax.inject.Singleton;
Expand All @@ -32,15 +35,8 @@
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import com.google.common.base.Preconditions;
import com.netflix.conductor.common.metadata.events.EventHandler;
import com.netflix.conductor.core.events.EventQueues;
import com.netflix.conductor.service.EventService;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
import java.util.Map;


/**
Expand All @@ -52,6 +48,7 @@
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
@Singleton
@Audit
public class EventResource {

private final EventService eventService;
Expand Down
@@ -1,7 +1,9 @@
package com.netflix.conductor.server.resources;

import com.netflix.conductor.annotations.Audit;
import com.netflix.runtime.health.api.HealthCheckAggregator;
import com.netflix.runtime.health.api.HealthCheckStatus;
import io.swagger.annotations.Api;

import javax.inject.Inject;
import javax.inject.Singleton;
Expand All @@ -10,12 +12,11 @@
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import io.swagger.annotations.Api;

@Api(value = "/health", produces = MediaType.APPLICATION_JSON, tags = "Health Check")
@Path("/health")
@Produces({MediaType.APPLICATION_JSON})
@Singleton
@Audit
public class HealthCheckResource {
private final HealthCheckAggregator healthCheck;

Expand Down
Expand Up @@ -15,6 +15,7 @@
*/
package com.netflix.conductor.server.resources;

import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.common.metadata.tasks.TaskDef;
import com.netflix.conductor.common.metadata.workflow.WorkflowDef;
import com.netflix.conductor.service.MetadataService;
Expand Down Expand Up @@ -42,6 +43,7 @@
@Path("/metadata")
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
@Audit
public class MetadataResource {
private final MetadataService metadataService;

Expand Down
Expand Up @@ -15,6 +15,7 @@
*/
package com.netflix.conductor.server.resources;

import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.common.metadata.tasks.PollData;
import com.netflix.conductor.common.metadata.tasks.Task;
import com.netflix.conductor.common.metadata.tasks.TaskExecLog;
Expand Down Expand Up @@ -51,6 +52,7 @@
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
@Singleton
@Audit
public class TaskResource {
private final TaskService taskService;

Expand Down
Expand Up @@ -19,6 +19,7 @@
package com.netflix.conductor.server.resources;

import com.google.common.base.Preconditions;
import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.core.execution.WorkflowExecutor;
import com.netflix.conductor.server.common.BulkResponse;
import io.swagger.annotations.Api;
Expand Down Expand Up @@ -48,6 +49,7 @@
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
@Singleton
@Audit
public class WorkflowBulkResource {

private static final int MAX_REQUEST_ITEMS = 1000;
Expand Down
Expand Up @@ -19,6 +19,7 @@
package com.netflix.conductor.server.resources;

import com.google.common.base.Preconditions;
import com.netflix.conductor.annotations.Audit;
import com.netflix.conductor.common.metadata.workflow.RerunWorkflowRequest;
import com.netflix.conductor.common.metadata.workflow.SkipTaskRequest;
import com.netflix.conductor.common.metadata.workflow.StartWorkflowRequest;
Expand Down Expand Up @@ -56,6 +57,7 @@
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
@Singleton
@Audit
public class WorkflowResource {

private final WorkflowService workflowService;
Expand Down

0 comments on commit 8576de5

Please sign in to comment.