Skip to content

Commit

Permalink
API cleanup: partial actions removal (#7583)
Browse files Browse the repository at this point in the history
* API cleanup:
- removed modelVersion and actions from scenario history returned by processes API
- removed actions from components usages API
- removed: createdAt, commentId and modelInfo from action DTO
- removed /processes/$scenarioName/deployments endpoint

* build fix
  • Loading branch information
arkadius authored Feb 21, 2025
1 parent d4a9f23 commit 5f4ba7e
Show file tree
Hide file tree
Showing 41 changed files with 55 additions and 415 deletions.
13 changes: 0 additions & 13 deletions designer/client/src/components/Process/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,9 @@ export type ActionName = string;

export type ProcessVersionId = number;

export type ProcessActionType = {
performedAt: Instant;
user: string;
actionName: ActionName;
commentId?: number;
comment?: string;
processVersionId: ProcessVersionId;
};

export type ProcessVersionType = {
createDate: string;
user: string;
actions: Array<ProcessActionType>;
modelVersion: number;
processVersionId: ProcessVersionId;
};

Expand All @@ -46,8 +35,6 @@ export interface Scenario {
modifiedAt: Instant;
createdBy: string;
labels: string[];
lastAction?: ProcessActionType;
lastDeployedAction?: ProcessActionType;
state: ProcessStateType;
history?: ProcessVersionType[];
scenarioGraph: ScenarioGraph;
Expand Down
23 changes: 2 additions & 21 deletions designer/client/src/http/HttpService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,7 @@ import { withoutHackOfEmptyEdges } from "../components/graph/GraphPartialsInTS/E
import { CaretPosition2d, ExpressionSuggestion } from "../components/graph/node-modal/editors/expression/ExpressionSuggester";
import { AdditionalInfo } from "../components/graph/node-modal/NodeAdditionalInfoBox";
import { AvailableScenarioLabels, ScenarioLabelsValidationResponse } from "../components/Labels/types";
import {
ActionName,
PredefinedActionName,
ProcessActionType,
ProcessName,
ProcessStateType,
ProcessVersionId,
Scenario,
StatusDefinitionType,
} from "../components/Process/types";
import { ProcessName, ProcessStateType, ProcessVersionId, Scenario, StatusDefinitionType } from "../components/Process/types";
import {
ActivitiesResponse,
ActivityMetadataResponse,
Expand All @@ -33,16 +24,7 @@ import { EventTrackingSelectorType, EventTrackingType } from "../containers/even
import { BackendNotification } from "../containers/Notifications";
import { ProcessCounts } from "../reducers/graph";
import { AuthenticationSettings } from "../reducers/settings";
import {
Expression,
LayoutData,
NodeId,
NodeType,
ProcessAdditionalFields,
ProcessDefinitionData,
ScenarioGraph,
VariableTypes,
} from "../types";
import { Expression, NodeId, NodeType, ProcessAdditionalFields, ProcessDefinitionData, ScenarioGraph, VariableTypes } from "../types";
import { Instant, WithId } from "../types/common";
import { fixAggregateParameters, fixBranchParametersTemplate } from "./parametersUtils";
import { handleAxiosError } from "../devHelpers";
Expand Down Expand Up @@ -135,7 +117,6 @@ export type ComponentUsageType = {
modifiedBy: string;
createdAt: Instant;
createdBy: string;
lastAction: ProcessActionType;
};

export type NotificationActions = {
Expand Down
11 changes: 2 additions & 9 deletions designer/client/src/reducers/graph/reducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,14 +113,12 @@ const graphReducer: Reducer<GraphState> = (state = emptyGraphState, action) => {
};
}
case "PROCESS_VERSIONS_LOADED": {
const { history, lastDeployedAction, lastAction } = action;
const { history } = action;
return {
...state,
scenario: {
...state.scenario,
history: history,
lastDeployedAction: lastDeployedAction,
lastAction: lastAction,
},
};
}
Expand Down Expand Up @@ -332,12 +330,7 @@ const pick = <T extends NonNullable<unknown>>(object: T, props: NestedKeyOf<T>[]
const omit = <T extends NonNullable<unknown>>(object: T, props: NestedKeyOf<T>[]) => _omit(object, props);

const pickKeys: NestedKeyOf<GraphState>[] = ["scenario", "unsavedNewName", "layout", "selectionState"];
const omitKeys: NestedKeyOf<GraphState>[] = [
"scenario.validationResult",
"scenario.lastDeployedAction",
"scenario.lastAction",
"scenario.history",
];
const omitKeys: NestedKeyOf<GraphState>[] = ["scenario.validationResult", "scenario.history"];

const getUndoableState = (state: GraphState) => omit(pick(state, pickKeys), omitKeys.concat(["scenario.validationResult"]));
const getNonUndoableState = (state: GraphState) => defaultsDeep(omit(state, pickKeys), pick(state, omitKeys));
Expand Down
8 changes: 0 additions & 8 deletions designer/client/src/reducers/graph/utils.fixtures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -614,29 +614,21 @@ export const state: GraphState = {
},
},
},
lastDeployedAction: null,
lastAction: null,
history: [
{
processVersionId: 3,
createDate: "2024-10-03T08:36:52.856496Z",
user: "writer",
modelVersion: 4,
actions: [],
},
{
processVersionId: 2,
createDate: "2024-10-03T08:14:04.647992Z",
user: "writer",
modelVersion: 4,
actions: [],
},
{
processVersionId: 1,
createDate: "2024-10-03T08:08:02.059243Z",
user: "writer",
modelVersion: 4,
actions: [],
},
],
},
Expand Down
4 changes: 0 additions & 4 deletions designer/client/src/reducers/selectors/graph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,6 @@ export const isDeployPossible = createSelector(
[isSaveDisabled, hasError, getProcessState, isFragment],
(saveDisabled, error, state, fragment) => !fragment && saveDisabled && !error && ProcessStateUtils.canDeploy(state),
);
export const isDeployedVersion = createSelector(
[getProcessVersionId, createSelector(getScenario, (scenario) => scenario?.lastDeployedAction?.processVersionId)],
(visibleVersion, deployedVersion) => visibleVersion === deployedVersion,
);
export const isCancelPossible = createSelector(getProcessState, (state) => ProcessStateUtils.canCancel(state));
export const isRunOffScheduleVisible = createSelector([getProcessState], (state) => ProcessStateUtils.canSeeRunOffSchedule(state));
export const isRunOffSchedulePossible = createSelector(
Expand Down
4 changes: 0 additions & 4 deletions designer/client/test/CompareVersionDialog-test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,6 @@ describe(CompareVersionsDialog.name, () => {
processVersionId: 1,
createDate: "2024-05-31",
user: "test",
modelVersion: 1,
actions: [],
},
];

Expand Down Expand Up @@ -120,8 +118,6 @@ describe(CompareVersionsDialog.name, () => {
processVersionId: 1,
createDate: "2024-05-31",
user: "test",
modelVersion: 1,
actions: [],
},
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,7 @@ import pl.touk.nussknacker.engine.api.component.{
DesignerWideComponentId,
ProcessingMode
}
import pl.touk.nussknacker.engine.api.deployment.{
ProcessAction,
ProcessActionId,
ProcessActionState,
ScenarioActionName
}
import pl.touk.nussknacker.engine.api.modelinfo.ModelInfo
import pl.touk.nussknacker.engine.api.deployment.ProcessActionId
import pl.touk.nussknacker.engine.api.process.{ProcessId, ProcessName, VersionId}
import pl.touk.nussknacker.restmodel.BaseEndpointDefinitions
import pl.touk.nussknacker.restmodel.BaseEndpointDefinitions.SecuredEndpoint
Expand All @@ -28,7 +22,6 @@ import sttp.tapir.json.circe.jsonBody

import java.net.URI
import java.time.Instant
import java.util.UUID

class ComponentApiEndpoints(auth: EndpointInput[AuthCredentials]) extends BaseEndpointDefinitions {

Expand All @@ -37,7 +30,6 @@ class ComponentApiEndpoints(auth: EndpointInput[AuthCredentials]) extends BaseEn
implicit val versionIdSchema: Schema[VersionId] = Schema.schemaForLong.as[VersionId]
implicit val actionIdSchema: Schema[ProcessActionId] = Schema.schemaForUUID.as[ProcessActionId]
implicit val componentGroupNameSchema: Schema[ComponentGroupName] = Schema.string[ComponentGroupName]
implicit val modelInfoSchema: Schema[ModelInfo] = Schema.schemaForMap[String].as[ModelInfo]

import ComponentApiEndpoints.ComponentCodec._

Expand Down Expand Up @@ -108,23 +100,7 @@ class ComponentApiEndpoints(auth: EndpointInput[AuthCredentials]) extends BaseEn
modifiedAt = Instant.parse("2023-11-29T08:54:22.520866Z"),
modifiedBy = "admin",
createdAt = Instant.parse("2023-11-14T11:09:28.078800Z"),
createdBy = "admin",
lastAction = Some(
ProcessAction(
id = ProcessActionId(UUID.fromString("45c0f3f5-3ef7-4dc2-92d4-8bb826ec0ca9")),
processId = ProcessId(1),
processVersionId = VersionId(1),
user = "admin",
createdAt = Instant.parse("2023-11-29T08:54:22.520866Z"),
performedAt = Instant.parse("2023-11-29T08:54:22.520866Z"),
actionName = ScenarioActionName.Deploy,
state = ProcessActionState.Finished,
failureMessage = None,
commentId = None,
comment = None,
modelInfo = None
)
)
createdBy = "admin"
)
)
)
Expand All @@ -145,7 +121,6 @@ class ComponentApiEndpoints(auth: EndpointInput[AuthCredentials]) extends BaseEn
modifiedBy = "admin",
createdAt = Instant.parse("2023-11-14T11:09:28.078800Z"),
createdBy = "admin",
lastAction = None
)
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,8 @@ import pl.touk.nussknacker.engine.api.component.{
DesignerWideComponentId,
ProcessingMode
}
import pl.touk.nussknacker.engine.api.deployment.ProcessAction
import pl.touk.nussknacker.engine.api.process.ProcessName
import sttp.tapir.{Codec, CodecFormat, Schema, SchemaType}
import sttp.tapir.{Schema, SchemaType}

import java.net.URI
import java.time.Instant
Expand Down Expand Up @@ -105,7 +104,6 @@ package object component {
modifiedBy: String,
createdAt: Instant,
createdBy: String,
lastAction: Option[ProcessAction]
)

implicit val uriSchema: Schema[URI] = Schema.string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ final case class ScenarioWithDetails(
createdAt: Instant,
createdBy: String,
override val labels: List[String],
// actions are used only by external project
lastDeployedAction: Option[ProcessAction],
lastStateAction: Option[ProcessAction],
lastAction: Option[ProcessAction],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ALTER TABLE "scenario_activities" DROP COLUMN "model_info";
Original file line number Diff line number Diff line change
Expand Up @@ -123,13 +123,6 @@ class ProcessesResources(
}
}
}
} ~ path("processes" / ProcessNameSegment / "deployments") { processName =>
processId(processName) { processId =>
complete {
// FIXME: We should provide Deployment definition and return there all deployments, not actions..
processService.getProcessActions(processId.id)
}
}
} ~ path("processes" / ProcessNameSegment) { processName =>
processId(processName) { processId =>
(delete & canWrite(processId)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package pl.touk.nussknacker.ui.db.entity

import com.typesafe.scalalogging.LazyLogging
import pl.touk.nussknacker.engine.api.modelinfo.ModelInfo
import pl.touk.nussknacker.engine.api.deployment.ProcessActionState.ProcessActionState
import pl.touk.nussknacker.engine.api.deployment.{
DeploymentStatusName,
Expand Down Expand Up @@ -43,18 +42,4 @@ trait BaseEntityFactory extends LazyLogging {
implicit def deploymentStatusName: BaseColumnType[DeploymentStatusName] =
MappedColumnType.base[DeploymentStatusName, String](_.value, DeploymentStatusName.apply)

implicit def modelInfoMapper: BaseColumnType[ModelInfo] =
MappedColumnType.base[ModelInfo, String](
_.asJsonString,
ModelInfo
.parseJsonString(_)
.fold(
{ err =>
logger.warn(s"Saved model info is not a json's object: ${err.getMessage}. Empty map will be returned")
ModelInfo.empty
},
identity
)
)

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import enumeratum.EnumEntry.UpperSnakecase
import enumeratum._
import io.circe.Decoder
import io.circe.syntax.EncoderOps
import pl.touk.nussknacker.engine.api.modelinfo.ModelInfo
import pl.touk.nussknacker.engine.api.deployment.ProcessActionState.ProcessActionState
import pl.touk.nussknacker.engine.api.deployment._
import pl.touk.nussknacker.engine.api.process.ProcessId
Expand Down Expand Up @@ -60,8 +59,6 @@ trait ScenarioActivityEntityFactory extends BaseEntityFactory {

def errorMessage: Rep[Option[String]] = column[Option[String]]("error_message")

def modelInfo: Rep[Option[ModelInfo]] = column[Option[ModelInfo]]("model_info")

def additionalProperties: Rep[AdditionalProperties] = column[AdditionalProperties]("additional_properties")

override def * =
Expand All @@ -83,7 +80,6 @@ trait ScenarioActivityEntityFactory extends BaseEntityFactory {
performedAt,
state,
errorMessage,
modelInfo,
additionalProperties,
) <> (
ScenarioActivityEntityData.apply _ tupled, ScenarioActivityEntityData.unapply
Expand Down Expand Up @@ -196,6 +192,5 @@ final case class ScenarioActivityEntityData(
finishedAt: Option[Timestamp],
state: Option[ProcessActionState],
errorMessage: Option[String],
modelInfo: Option[ModelInfo],
additionalProperties: AdditionalProperties,
)
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,7 @@ object DefaultComponentService {
modifiedAt = process.modifiedAt,
modifiedBy = process.modifiedBy,
createdAt = process.createdAt,
createdBy = process.createdBy,
lastAction = process.lastAction
createdBy = process.createdBy
)

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,6 @@ class DBProcessService(
process.processVersionId,
ScenarioActionName.UnArchive,
None,
None
)
)
)
Expand Down Expand Up @@ -559,7 +558,6 @@ class DBProcessService(
process.processVersionId,
ScenarioActionName.Archive,
None,
None
)
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,7 @@ object ScenarioWithDetailsConversions {
def skipProcessActionOptionalFields(processAction: Option[ProcessAction]) = processAction.map(
_.copy(
failureMessage = None,
commentId = None,
comment = None,
modelInfo = None
)
)
def getProcessAction(processAction: Option[ProcessAction]) =
Expand Down
Loading

0 comments on commit 5f4ba7e

Please sign in to comment.