Skip to content

Commit

Permalink
Merge pull request #18807 from jmchilton/landing
Browse files Browse the repository at this point in the history
  • Loading branch information
mvdbeek authored Oct 1, 2024
2 parents 8db5a76 + f80207d commit 2ead0c4
Show file tree
Hide file tree
Showing 80 changed files with 3,988 additions and 262 deletions.
4 changes: 4 additions & 0 deletions client/src/api/landings.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { type components } from "@/api/schema";

export type ClaimLandingPayload = components["schemas"]["ClaimLandingPayload"];
export type WorkflowLandingRequest = components["schemas"]["WorkflowLandingRequest"];
261 changes: 259 additions & 2 deletions client/src/api/schema/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4880,6 +4880,57 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/workflow_landings": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Create Landing */
post: operations["create_landing_api_workflow_landings_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/workflow_landings/{uuid}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get Landing */
get: operations["get_landing_api_workflow_landings__uuid__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/workflow_landings/{uuid}/claim": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Claim Landing */
post: operations["claim_landing_api_workflow_landings__uuid__claim_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/workflows": {
parameters: {
query?: never;
Expand Down Expand Up @@ -6270,6 +6321,11 @@ export interface components {
*/
type: string;
};
/** ClaimLandingPayload */
ClaimLandingPayload: {
/** Client Secret */
client_secret?: string | null;
};
/** CleanableItemsSummary */
CleanableItemsSummary: {
/**
Expand Down Expand Up @@ -6915,6 +6971,20 @@ export interface components {
*/
url: string;
};
/** CreateWorkflowLandingRequestPayload */
CreateWorkflowLandingRequestPayload: {
/** Client Secret */
client_secret?: string | null;
/** Request State */
request_state?: Record<string, never> | null;
/** Workflow Id */
workflow_id: string;
/**
* Workflow Target Type
* @enum {string}
*/
workflow_target_type: "stored_workflow" | "workflow";
};
/** CreatedEntryResponse */
CreatedEntryResponse: {
/**
Expand Down Expand Up @@ -11856,7 +11926,14 @@ export interface components {
* InvocationState
* @enum {string}
*/
InvocationState: "new" | "ready" | "scheduled" | "cancelled" | "cancelling" | "failed";
InvocationState:
| "new"
| "requires_materialization"
| "ready"
| "scheduled"
| "cancelled"
| "cancelling"
| "failed";
/**
* InvocationStep
* @description Information about workflow invocation step
Expand Down Expand Up @@ -12790,6 +12867,11 @@ export interface components {
*/
value: string;
};
/**
* LandingRequestState
* @enum {string}
*/
LandingRequestState: "unclaimed" | "claimed";
/** LegacyLibraryPermissionsPayload */
LegacyLibraryPermissionsPayload: {
/**
Expand Down Expand Up @@ -13333,6 +13415,21 @@ export interface components {
* @description The source of the content. Can be other history element to be copied or library elements.
*/
source: components["schemas"]["DatasetSourceType"];
/**
* Validate hashes
* @description Set to true to enable dataset validation during materialization.
* @default false
*/
validate_hashes: boolean;
};
/** MaterializeDatasetOptions */
MaterializeDatasetOptions: {
/**
* Validate hashes
* @description Set to true to enable dataset validation during materialization.
* @default false
*/
validate_hashes: boolean;
};
/** MessageExceptionModel */
MessageExceptionModel: {
Expand Down Expand Up @@ -17441,6 +17538,25 @@ export interface components {
[key: string]: number;
};
};
/** WorkflowLandingRequest */
WorkflowLandingRequest: {
/** Request State */
request_state: Record<string, never>;
state: components["schemas"]["LandingRequestState"];
/**
* UUID
* Format: uuid4
* @description Universal unique identifier for this dataset.
*/
uuid: string;
/** Workflow Id */
workflow_id: string;
/**
* Workflow Target Type
* @enum {string}
*/
workflow_target_type: "stored_workflow" | "workflow";
};
/** WriteInvocationStoreToPayload */
WriteInvocationStoreToPayload: {
/**
Expand Down Expand Up @@ -23380,7 +23496,11 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody?: {
content: {
"application/json": components["schemas"]["MaterializeDatasetOptions"] | null;
};
};
responses: {
/** @description Successful Response */
200: {
Expand Down Expand Up @@ -33166,6 +33286,143 @@ export interface operations {
};
};
};
create_landing_api_workflow_landings_post: {
parameters: {
query?: never;
header?: {
/** @description The user ID that will be used to effectively make this API call. Only admins and designated users can make API calls on behalf of other users. */
"run-as"?: string | null;
};
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CreateWorkflowLandingRequestPayload"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkflowLandingRequest"];
};
};
/** @description Request Error */
"4XX": {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MessageExceptionModel"];
};
};
/** @description Server Error */
"5XX": {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MessageExceptionModel"];
};
};
};
};
get_landing_api_workflow_landings__uuid__get: {
parameters: {
query?: never;
header?: {
/** @description The user ID that will be used to effectively make this API call. Only admins and designated users can make API calls on behalf of other users. */
"run-as"?: string | null;
};
path: {
/** @description The UUID used to identify a persisted landing request. */
uuid: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkflowLandingRequest"];
};
};
/** @description Request Error */
"4XX": {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MessageExceptionModel"];
};
};
/** @description Server Error */
"5XX": {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MessageExceptionModel"];
};
};
};
};
claim_landing_api_workflow_landings__uuid__claim_post: {
parameters: {
query?: never;
header?: {
/** @description The user ID that will be used to effectively make this API call. Only admins and designated users can make API calls on behalf of other users. */
"run-as"?: string | null;
};
path: {
/** @description The UUID used to identify a persisted landing request. */
uuid: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ClaimLandingPayload"] | null;
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkflowLandingRequest"];
};
};
/** @description Request Error */
"4XX": {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MessageExceptionModel"];
};
};
/** @description Server Error */
"5XX": {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MessageExceptionModel"];
};
};
};
};
index_api_workflows_get: {
parameters: {
query?: {
Expand Down
66 changes: 66 additions & 0 deletions client/src/components/Form/Elements/FormData/FormDataUri.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<template>
<b-row align-v="center">
<b-col>
<b-form-input :id="id" v-model="displayValue" :class="['ui-input', cls]" :readonly="true" />
</b-col>
</b-row>
</template>

<script>
export default {
props: {
value: {
type: Object,
},
id: {
type: String,
default: "",
},
multiple: {
type: Boolean,
default: false,
},
cls: {
// Refers to an optional custom css class name
type: String,
default: null,
},
},
computed: {
displayValue: {
get() {
return this.value.url;
},
set(newVal, oldValue) {
if (newVal !== this.value.url) {
this.$emit("input", this.value);
}
},
},
currentValue: {
get() {
const v = this.value ?? "";
if (Array.isArray(v)) {
if (v.length === 0) {
return "";
}
return this.multiple
? this.value.reduce((str_value, v) => str_value + String(v) + "\n", "")
: String(this.value[0]);
}
return String(v);
},
set(newVal, oldVal) {
if (newVal !== oldVal) {
this.$emit("input", newVal);
}
},
},
},
};
</script>
<style scoped>
.ui-input-linked {
border-left-width: 0.5rem;
}
</style>
Loading

0 comments on commit 2ead0c4

Please sign in to comment.