1 -- Copyright (C) The Arvados Authors. All rights reserved.
3 -- SPDX-License-Identifier: AGPL-3.0
5 SET statement_timeout = 0;
6 SET client_encoding = 'UTF8';
7 SET standard_conforming_strings = on;
8 SELECT pg_catalog.set_config('search_path', '', false);
9 SET check_function_bodies = false;
10 SET xmloption = content;
11 SET client_min_messages = warning;
14 -- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
17 CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
21 -- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
24 -- COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
28 -- Name: pg_trgm; Type: EXTENSION; Schema: -; Owner: -
31 CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA public;
35 -- Name: EXTENSION pg_trgm; Type: COMMENT; Schema: -; Owner: -
38 -- COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams';
42 -- Name: compute_permission_subgraph(character varying, character varying, integer); Type: FUNCTION; Schema: public; Owner: -
45 CREATE FUNCTION public.compute_permission_subgraph(perm_origin_uuid character varying, starting_uuid character varying, starting_perm integer) RETURNS TABLE(user_uuid character varying, target_uuid character varying, val integer, traverse_owned boolean)
48 /* perm_origin_uuid: The object that 'gets' or 'has' the permission.
50 starting_uuid: The starting object the permission applies to.
52 starting_perm: The permission that perm_origin_uuid 'has' on
53 starting_uuid One of 1, 2, 3 for can_read,
54 can_write, can_manage respectively, or 0 to revoke
57 This function is broken up into a number of clauses, described
60 Note on query optimization:
62 Each clause in a "with" statement is called a "common table
65 In Postgres, they are evaluated in sequence and results of each CTE
66 is stored in a temporary table. This means Postgres does not
67 propagate constraints from later subqueries to earlier subqueries
70 This is a problem if, for example, a later subquery chooses 10
71 items out of a set of 1000000 defined by an earlier subquery,
72 because it will always compute all 1000000 rows even if the query
73 on the 1000000 rows could have been constrained. This is why
74 permission_graph_edges is a view -- views are inlined so and can be
75 optimized using external constraints.
77 The query optimizer does sort the temporary tables for later use in
80 Final note, this query would have been almost impossible to write
81 (and certainly impossible to read) without splitting it up using
82 SQL "with" but unfortunately it also stumbles into a frustrating
83 Postgres optimizer bug, see
84 lib/refresh_permission_view.rb#update_permissions
85 for details and a partial workaround.
88 /* Gets the initial set of objects potentially affected by the
89 permission change, using search_permission_graph.
91 perm_from_start(perm_origin_uuid, target_uuid, val, traverse_owned) as (
92 select perm_origin_uuid, target_uuid, val, traverse_owned
93 from search_permission_graph(starting_uuid,
99 /* Finds other inbound edges that grant permissions on the objects
100 in perm_from_start, and computes permissions that originate from
101 those. This is required to handle the case where there is more
102 than one path through which a user gets permission to an object.
103 For example, a user owns a project and also shares it can_read
104 with a group the user belongs to, adding the can_read link must
105 not overwrite the existing can_manage permission granted by
108 additional_perms(perm_origin_uuid, target_uuid, val, traverse_owned) as (
109 select edges.tail_uuid as perm_origin_uuid, ps.target_uuid, ps.val,
110 should_traverse_owned(ps.target_uuid, ps.val)
111 from permission_graph_edges as edges,
112 lateral search_permission_graph(edges.head_uuid,
117 where (not (edges.tail_uuid = perm_origin_uuid and
118 edges.head_uuid = starting_uuid)) and
119 edges.tail_uuid not in (select target_uuid from perm_from_start) and
120 edges.head_uuid in (select target_uuid from perm_from_start)),
122 /* Combines the permissions computed in the first two phases. */
123 partial_perms(perm_origin_uuid, target_uuid, val, traverse_owned) as (
124 select * from perm_from_start
126 select * from additional_perms
129 /* If there are any users in the set of potentially affected objects
130 and the user's owner was not traversed, recompute permissions for
131 that user. This is required because users always have permission
132 to themselves (identity property) which would be missing from the
133 permission set if the user was traversed while computing
134 permissions for another object.
136 user_identity_perms(perm_origin_uuid, target_uuid, val, traverse_owned) as (
137 select users.uuid as perm_origin_uuid, ps.target_uuid, ps.val, ps.traverse_owned
138 from users, lateral search_permission_graph(users.uuid,
143 where (users.owner_uuid not in (select target_uuid from partial_perms) or
144 users.owner_uuid = users.uuid) and
145 users.uuid in (select target_uuid from partial_perms)
148 /* Combines all the computed permissions into one table. */
149 all_perms(perm_origin_uuid, target_uuid, val, traverse_owned) as (
150 select * from partial_perms
152 select * from user_identity_perms
155 /* The actual query that produces rows to be added or removed
156 from the materialized_permissions table. This is the clever
161 * Permissions are transitive (with some special cases involving
162 users, this is controlled by the traverse_owned flag).
164 * A user object can only gain permissions via an inbound edge,
165 or appearing in the graph.
167 * The materialized_permissions table includes the permission
168 each user has on the tail end of each inbound edge.
170 * The all_perms subquery has permissions for each object in the
171 subgraph reachable from certain origin (tail end of an edge).
173 * Therefore, for each user, we can compute user permissions on
174 each object in subgraph by determining the permission the user
175 has on each origin (tail end of an edge), joining that with the
176 perm_origin_uuid column of all_perms, and taking the least() of
177 the origin edge or all_perms val (because of the "least
178 permission on the path" rule). If an object was reachable by
179 more than one path (appears with more than one origin), we take
180 the max() of the computed permissions.
182 * Finally, because users always have permission on themselves, the
183 query also makes sure those permission rows are always
186 select v.user_uuid, v.target_uuid, max(v.perm_level), bool_or(v.traverse_owned) from
189 least(u.val, m.perm_level) as perm_level,
191 from all_perms as u, materialized_permissions as m
192 where u.perm_origin_uuid = m.target_uuid AND m.traverse_owned
194 select perm_origin_uuid as user_uuid, target_uuid, val as perm_level, traverse_owned
196 where all_perms.perm_origin_uuid like '_____-tpzed-_______________') as v
197 group by v.user_uuid, v.target_uuid
202 -- Name: compute_trashed(); Type: FUNCTION; Schema: public; Owner: -
205 CREATE FUNCTION public.compute_trashed() RETURNS TABLE(uuid character varying, trash_at timestamp without time zone)
208 /* Helper function to populate trashed_groups table. This starts with
209 each group owned by a user and computes the subtree under that
210 group to find any groups that are trashed.
212 select ps.target_uuid as group_uuid, ps.trash_at from groups,
213 lateral project_subtree_with_trash_at(groups.uuid, groups.trash_at) ps
214 where groups.owner_uuid like '_____-tpzed-_______________'
219 -- Name: project_subtree_with_trash_at(character varying, timestamp without time zone); Type: FUNCTION; Schema: public; Owner: -
222 CREATE FUNCTION public.project_subtree_with_trash_at(starting_uuid character varying, starting_trash_at timestamp without time zone) RETURNS TABLE(target_uuid character varying, trash_at timestamp without time zone)
225 /* Starting from a project, recursively traverse all the projects
226 underneath it and return a set of project uuids and trash_at times
227 (may be null). The initial trash_at can be a timestamp or null.
228 The trash_at time propagates downward to groups it owns, i.e. when a
229 group is trashed, everything underneath it in the ownership
230 hierarchy is also considered trashed. However, this is fact is
231 recorded in the trashed_groups table, not by updating trash_at field
235 project_subtree(uuid, trash_at) as (
236 values (starting_uuid, starting_trash_at)
238 select groups.uuid, LEAST(project_subtree.trash_at, groups.trash_at)
239 from groups join project_subtree on (groups.owner_uuid = project_subtree.uuid)
241 select uuid, trash_at from project_subtree;
246 -- Name: search_permission_graph(character varying, integer, character varying, character varying, integer); Type: FUNCTION; Schema: public; Owner: -
249 CREATE FUNCTION public.search_permission_graph(starting_uuid character varying, starting_perm integer, override_edge_tail character varying DEFAULT NULL::character varying, override_edge_head character varying DEFAULT NULL::character varying, override_edge_perm integer DEFAULT NULL::integer) RETURNS TABLE(target_uuid character varying, val integer, traverse_owned boolean)
253 From starting_uuid, perform a recursive self-join on the edges
254 to follow chains of permissions. This is a breadth-first search
255 of the permission graph. Permission is propagated across edges,
256 which may narrow the permission for subsequent links (eg I start
257 at can_manage but when traversing a can_read link everything
258 touched through that link will only be can_read).
260 When revoking a permission, we follow the chain of permissions but
261 with a permissions level of 0. The update on the permissions table
262 has to happen _before_ the permission is actually removed, because
263 we need to be able to traverse the edge before it goes away. When
264 we do that, we also need to traverse it at the _new_ permission
265 level - this is what override_edge_tail/head/perm are for.
267 Yields the set of objects that are potentially affected, and
268 their permission levels granted by having starting_perm on
271 If starting_uuid is a user, this computes the entire set of
272 permissions for that user (because it returns everything that is
273 reachable by that user).
275 Used by the compute_permission_subgraph function.
278 traverse_graph(target_uuid, val, traverse_owned) as (
279 values (starting_uuid, starting_perm,
280 should_traverse_owned(starting_uuid, starting_perm))
282 (select edges.head_uuid,
285 case traverse_graph.traverse_owned
289 case (edges.tail_uuid = override_edge_tail AND
290 edges.head_uuid = override_edge_head)
291 when true then override_edge_perm
294 should_traverse_owned(edges.head_uuid, edges.val)
295 from permission_graph_edges as edges, traverse_graph
296 where traverse_graph.target_uuid = edges.tail_uuid))
297 select target_uuid, max(val), bool_or(traverse_owned) from traverse_graph
298 group by (target_uuid);
303 -- Name: should_traverse_owned(character varying, integer); Type: FUNCTION; Schema: public; Owner: -
306 CREATE FUNCTION public.should_traverse_owned(starting_uuid character varying, starting_perm integer) RETURNS boolean
307 LANGUAGE sql IMMUTABLE
309 /* Helper function. Determines if permission on an object implies
310 transitive permission to things the object owns. This is always
311 true for groups, but only true for users when the permission level
314 select starting_uuid like '_____-j7d0g-_______________' or
315 (starting_uuid like '_____-tpzed-_______________' and starting_perm >= 3);
319 SET default_tablespace = '';
321 SET default_with_oids = false;
324 -- Name: api_client_authorizations; Type: TABLE; Schema: public; Owner: -
327 CREATE TABLE public.api_client_authorizations (
329 api_token character varying(255) NOT NULL,
330 api_client_id integer NOT NULL,
331 user_id integer NOT NULL,
332 created_by_ip_address character varying(255),
333 last_used_by_ip_address character varying(255),
334 last_used_at timestamp without time zone,
335 expires_at timestamp without time zone,
336 created_at timestamp without time zone NOT NULL,
337 updated_at timestamp without time zone NOT NULL,
338 default_owner_uuid character varying(255),
339 scopes text DEFAULT '["all"]'::text,
340 uuid character varying(255) NOT NULL
345 -- Name: api_client_authorizations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
348 CREATE SEQUENCE public.api_client_authorizations_id_seq
357 -- Name: api_client_authorizations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
360 ALTER SEQUENCE public.api_client_authorizations_id_seq OWNED BY public.api_client_authorizations.id;
364 -- Name: api_clients; Type: TABLE; Schema: public; Owner: -
367 CREATE TABLE public.api_clients (
369 uuid character varying(255),
370 owner_uuid character varying(255),
371 modified_by_client_uuid character varying(255),
372 modified_by_user_uuid character varying(255),
373 modified_at timestamp without time zone,
374 name character varying(255),
375 url_prefix character varying(255),
376 created_at timestamp without time zone NOT NULL,
377 updated_at timestamp without time zone NOT NULL,
378 is_trusted boolean DEFAULT false
383 -- Name: api_clients_id_seq; Type: SEQUENCE; Schema: public; Owner: -
386 CREATE SEQUENCE public.api_clients_id_seq
395 -- Name: api_clients_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
398 ALTER SEQUENCE public.api_clients_id_seq OWNED BY public.api_clients.id;
402 -- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -
405 CREATE TABLE public.ar_internal_metadata (
406 key character varying NOT NULL,
407 value character varying,
408 created_at timestamp without time zone NOT NULL,
409 updated_at timestamp without time zone NOT NULL
414 -- Name: authorized_keys; Type: TABLE; Schema: public; Owner: -
417 CREATE TABLE public.authorized_keys (
419 uuid character varying(255) NOT NULL,
420 owner_uuid character varying(255) NOT NULL,
421 modified_by_client_uuid character varying(255),
422 modified_by_user_uuid character varying(255),
423 modified_at timestamp without time zone,
424 name character varying(255),
425 key_type character varying(255),
426 authorized_user_uuid character varying(255),
428 expires_at timestamp without time zone,
429 created_at timestamp without time zone NOT NULL,
430 updated_at timestamp without time zone NOT NULL
435 -- Name: authorized_keys_id_seq; Type: SEQUENCE; Schema: public; Owner: -
438 CREATE SEQUENCE public.authorized_keys_id_seq
447 -- Name: authorized_keys_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
450 ALTER SEQUENCE public.authorized_keys_id_seq OWNED BY public.authorized_keys.id;
454 -- Name: collections; Type: TABLE; Schema: public; Owner: -
457 CREATE TABLE public.collections (
459 owner_uuid character varying(255),
460 created_at timestamp without time zone NOT NULL,
461 modified_by_client_uuid character varying(255),
462 modified_by_user_uuid character varying(255),
463 modified_at timestamp without time zone,
464 portable_data_hash character varying(255),
465 replication_desired integer,
466 replication_confirmed_at timestamp without time zone,
467 replication_confirmed integer,
468 updated_at timestamp without time zone NOT NULL,
469 uuid character varying(255),
471 name character varying(255),
472 description character varying(524288),
474 delete_at timestamp without time zone,
476 trash_at timestamp without time zone,
477 is_trashed boolean DEFAULT false NOT NULL,
478 storage_classes_desired jsonb DEFAULT '["default"]'::jsonb,
479 storage_classes_confirmed jsonb DEFAULT '[]'::jsonb,
480 storage_classes_confirmed_at timestamp without time zone,
481 current_version_uuid character varying,
482 version integer DEFAULT 1 NOT NULL,
483 preserve_version boolean DEFAULT false,
484 file_count integer DEFAULT 0 NOT NULL,
485 file_size_total bigint DEFAULT 0 NOT NULL
490 -- Name: collections_id_seq; Type: SEQUENCE; Schema: public; Owner: -
493 CREATE SEQUENCE public.collections_id_seq
502 -- Name: collections_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
505 ALTER SEQUENCE public.collections_id_seq OWNED BY public.collections.id;
509 -- Name: container_requests; Type: TABLE; Schema: public; Owner: -
512 CREATE TABLE public.container_requests (
514 uuid character varying(255),
515 owner_uuid character varying(255),
516 created_at timestamp without time zone NOT NULL,
517 modified_at timestamp without time zone,
518 modified_by_client_uuid character varying(255),
519 modified_by_user_uuid character varying(255),
520 name character varying(255),
523 state character varying(255),
524 requesting_container_uuid character varying(255),
525 container_uuid character varying(255),
526 container_count_max integer,
528 runtime_constraints text,
529 container_image character varying(255),
531 cwd character varying(255),
533 output_path character varying(255),
535 expires_at timestamp without time zone,
537 updated_at timestamp without time zone NOT NULL,
538 container_count integer DEFAULT 0,
539 use_existing boolean DEFAULT true,
540 scheduling_parameters text,
541 output_uuid character varying(255),
542 log_uuid character varying(255),
543 output_name character varying(255) DEFAULT NULL::character varying,
544 output_ttl integer DEFAULT 0 NOT NULL,
545 secret_mounts jsonb DEFAULT '{}'::jsonb,
551 -- Name: container_requests_id_seq; Type: SEQUENCE; Schema: public; Owner: -
554 CREATE SEQUENCE public.container_requests_id_seq
563 -- Name: container_requests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
566 ALTER SEQUENCE public.container_requests_id_seq OWNED BY public.container_requests.id;
570 -- Name: containers; Type: TABLE; Schema: public; Owner: -
573 CREATE TABLE public.containers (
575 uuid character varying(255),
576 owner_uuid character varying(255),
577 created_at timestamp without time zone NOT NULL,
578 modified_at timestamp without time zone,
579 modified_by_client_uuid character varying(255),
580 modified_by_user_uuid character varying(255),
581 state character varying(255),
582 started_at timestamp without time zone,
583 finished_at timestamp without time zone,
584 log character varying(255),
586 cwd character varying(255),
588 output_path character varying(255),
590 runtime_constraints text,
591 output character varying(255),
592 container_image character varying(255),
593 progress double precision,
595 updated_at timestamp without time zone NOT NULL,
597 auth_uuid character varying(255),
598 locked_by_uuid character varying(255),
599 scheduling_parameters text,
600 secret_mounts jsonb DEFAULT '{}'::jsonb,
601 secret_mounts_md5 character varying DEFAULT '99914b932bd37a50b983c5e7c90ae93b'::character varying,
602 runtime_status jsonb DEFAULT '{}'::jsonb,
603 runtime_user_uuid text,
604 runtime_auth_scopes jsonb,
606 lock_count integer DEFAULT 0 NOT NULL
611 -- Name: containers_id_seq; Type: SEQUENCE; Schema: public; Owner: -
614 CREATE SEQUENCE public.containers_id_seq
623 -- Name: containers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
626 ALTER SEQUENCE public.containers_id_seq OWNED BY public.containers.id;
630 -- Name: groups; Type: TABLE; Schema: public; Owner: -
633 CREATE TABLE public.groups (
635 uuid character varying(255),
636 owner_uuid character varying(255),
637 created_at timestamp without time zone NOT NULL,
638 modified_by_client_uuid character varying(255),
639 modified_by_user_uuid character varying(255),
640 modified_at timestamp without time zone,
641 name character varying(255) NOT NULL,
642 description character varying(524288),
643 updated_at timestamp without time zone NOT NULL,
644 group_class character varying(255),
645 trash_at timestamp without time zone,
646 is_trashed boolean DEFAULT false NOT NULL,
647 delete_at timestamp without time zone,
648 properties jsonb DEFAULT '{}'::jsonb
653 -- Name: groups_id_seq; Type: SEQUENCE; Schema: public; Owner: -
656 CREATE SEQUENCE public.groups_id_seq
665 -- Name: groups_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
668 ALTER SEQUENCE public.groups_id_seq OWNED BY public.groups.id;
672 -- Name: humans; Type: TABLE; Schema: public; Owner: -
675 CREATE TABLE public.humans (
677 uuid character varying(255) NOT NULL,
678 owner_uuid character varying(255) NOT NULL,
679 modified_by_client_uuid character varying(255),
680 modified_by_user_uuid character varying(255),
681 modified_at timestamp without time zone,
683 created_at timestamp without time zone NOT NULL,
684 updated_at timestamp without time zone NOT NULL
689 -- Name: humans_id_seq; Type: SEQUENCE; Schema: public; Owner: -
692 CREATE SEQUENCE public.humans_id_seq
701 -- Name: humans_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
704 ALTER SEQUENCE public.humans_id_seq OWNED BY public.humans.id;
708 -- Name: job_tasks; Type: TABLE; Schema: public; Owner: -
711 CREATE TABLE public.job_tasks (
713 uuid character varying(255),
714 owner_uuid character varying(255),
715 modified_by_client_uuid character varying(255),
716 modified_by_user_uuid character varying(255),
717 modified_at timestamp without time zone,
718 job_uuid character varying(255),
722 progress double precision,
724 created_at timestamp without time zone NOT NULL,
725 updated_at timestamp without time zone NOT NULL,
726 created_by_job_task_uuid character varying(255),
728 started_at timestamp without time zone,
729 finished_at timestamp without time zone
734 -- Name: job_tasks_id_seq; Type: SEQUENCE; Schema: public; Owner: -
737 CREATE SEQUENCE public.job_tasks_id_seq
746 -- Name: job_tasks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
749 ALTER SEQUENCE public.job_tasks_id_seq OWNED BY public.job_tasks.id;
753 -- Name: job_tasks_qsequence_seq; Type: SEQUENCE; Schema: public; Owner: -
756 CREATE SEQUENCE public.job_tasks_qsequence_seq
765 -- Name: job_tasks_qsequence_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
768 ALTER SEQUENCE public.job_tasks_qsequence_seq OWNED BY public.job_tasks.qsequence;
772 -- Name: jobs; Type: TABLE; Schema: public; Owner: -
775 CREATE TABLE public.jobs (
777 uuid character varying(255),
778 owner_uuid character varying(255),
779 modified_by_client_uuid character varying(255),
780 modified_by_user_uuid character varying(255),
781 modified_at timestamp without time zone,
782 submit_id character varying(255),
783 script character varying(255),
784 script_version character varying(255),
785 script_parameters text,
786 cancelled_by_client_uuid character varying(255),
787 cancelled_by_user_uuid character varying(255),
788 cancelled_at timestamp without time zone,
789 started_at timestamp without time zone,
790 finished_at timestamp without time zone,
793 output character varying(255),
794 created_at timestamp without time zone NOT NULL,
795 updated_at timestamp without time zone NOT NULL,
796 is_locked_by_uuid character varying(255),
797 log character varying(255),
799 runtime_constraints text,
800 nondeterministic boolean,
801 repository character varying(255),
802 supplied_script_version character varying(255),
803 docker_image_locator character varying(255),
804 priority integer DEFAULT 0 NOT NULL,
805 description character varying(524288),
806 state character varying(255),
807 arvados_sdk_version character varying(255),
809 script_parameters_digest character varying(255)
814 -- Name: jobs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
817 CREATE SEQUENCE public.jobs_id_seq
826 -- Name: jobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
829 ALTER SEQUENCE public.jobs_id_seq OWNED BY public.jobs.id;
833 -- Name: keep_disks; Type: TABLE; Schema: public; Owner: -
836 CREATE TABLE public.keep_disks (
838 uuid character varying(255) NOT NULL,
839 owner_uuid character varying(255) NOT NULL,
840 modified_by_client_uuid character varying(255),
841 modified_by_user_uuid character varying(255),
842 modified_at timestamp without time zone,
843 ping_secret character varying(255) NOT NULL,
844 node_uuid character varying(255),
845 filesystem_uuid character varying(255),
848 is_readable boolean DEFAULT true NOT NULL,
849 is_writable boolean DEFAULT true NOT NULL,
850 last_read_at timestamp without time zone,
851 last_write_at timestamp without time zone,
852 last_ping_at timestamp without time zone,
853 created_at timestamp without time zone NOT NULL,
854 updated_at timestamp without time zone NOT NULL,
855 keep_service_uuid character varying(255)
860 -- Name: keep_disks_id_seq; Type: SEQUENCE; Schema: public; Owner: -
863 CREATE SEQUENCE public.keep_disks_id_seq
872 -- Name: keep_disks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
875 ALTER SEQUENCE public.keep_disks_id_seq OWNED BY public.keep_disks.id;
879 -- Name: keep_services; Type: TABLE; Schema: public; Owner: -
882 CREATE TABLE public.keep_services (
884 uuid character varying(255) NOT NULL,
885 owner_uuid character varying(255) NOT NULL,
886 modified_by_client_uuid character varying(255),
887 modified_by_user_uuid character varying(255),
888 modified_at timestamp without time zone,
889 service_host character varying(255),
890 service_port integer,
891 service_ssl_flag boolean,
892 service_type character varying(255),
893 created_at timestamp without time zone NOT NULL,
894 updated_at timestamp without time zone NOT NULL,
895 read_only boolean DEFAULT false NOT NULL
900 -- Name: keep_services_id_seq; Type: SEQUENCE; Schema: public; Owner: -
903 CREATE SEQUENCE public.keep_services_id_seq
912 -- Name: keep_services_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
915 ALTER SEQUENCE public.keep_services_id_seq OWNED BY public.keep_services.id;
919 -- Name: links; Type: TABLE; Schema: public; Owner: -
922 CREATE TABLE public.links (
924 uuid character varying(255),
925 owner_uuid character varying(255),
926 created_at timestamp without time zone NOT NULL,
927 modified_by_client_uuid character varying(255),
928 modified_by_user_uuid character varying(255),
929 modified_at timestamp without time zone,
930 tail_uuid character varying(255),
931 link_class character varying(255),
932 name character varying(255),
933 head_uuid character varying(255),
935 updated_at timestamp without time zone NOT NULL
940 -- Name: links_id_seq; Type: SEQUENCE; Schema: public; Owner: -
943 CREATE SEQUENCE public.links_id_seq
952 -- Name: links_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
955 ALTER SEQUENCE public.links_id_seq OWNED BY public.links.id;
959 -- Name: logs; Type: TABLE; Schema: public; Owner: -
962 CREATE TABLE public.logs (
964 uuid character varying(255),
965 owner_uuid character varying(255),
966 modified_by_client_uuid character varying(255),
967 modified_by_user_uuid character varying(255),
968 object_uuid character varying(255),
969 event_at timestamp without time zone,
970 event_type character varying(255),
973 created_at timestamp without time zone NOT NULL,
974 updated_at timestamp without time zone NOT NULL,
975 modified_at timestamp without time zone,
976 object_owner_uuid character varying(255)
981 -- Name: logs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
984 CREATE SEQUENCE public.logs_id_seq
993 -- Name: logs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
996 ALTER SEQUENCE public.logs_id_seq OWNED BY public.logs.id;
1000 -- Name: materialized_permissions; Type: TABLE; Schema: public; Owner: -
1003 CREATE TABLE public.materialized_permissions (
1004 user_uuid character varying,
1005 target_uuid character varying,
1007 traverse_owned boolean
1012 -- Name: nodes; Type: TABLE; Schema: public; Owner: -
1015 CREATE TABLE public.nodes (
1016 id integer NOT NULL,
1017 uuid character varying(255),
1018 owner_uuid character varying(255),
1019 created_at timestamp without time zone NOT NULL,
1020 modified_by_client_uuid character varying(255),
1021 modified_by_user_uuid character varying(255),
1022 modified_at timestamp without time zone,
1023 slot_number integer,
1024 hostname character varying(255),
1025 domain character varying(255),
1026 ip_address character varying(255),
1027 first_ping_at timestamp without time zone,
1028 last_ping_at timestamp without time zone,
1030 updated_at timestamp without time zone NOT NULL,
1032 job_uuid character varying(255)
1037 -- Name: nodes_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1040 CREATE SEQUENCE public.nodes_id_seq
1049 -- Name: nodes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1052 ALTER SEQUENCE public.nodes_id_seq OWNED BY public.nodes.id;
1056 -- Name: users; Type: TABLE; Schema: public; Owner: -
1059 CREATE TABLE public.users (
1060 id integer NOT NULL,
1061 uuid character varying(255),
1062 owner_uuid character varying(255) NOT NULL,
1063 created_at timestamp without time zone NOT NULL,
1064 modified_by_client_uuid character varying(255),
1065 modified_by_user_uuid character varying(255),
1066 modified_at timestamp without time zone,
1067 email character varying(255),
1068 first_name character varying(255),
1069 last_name character varying(255),
1070 identity_url character varying(255),
1073 updated_at timestamp without time zone NOT NULL,
1074 default_owner_uuid character varying(255),
1075 is_active boolean DEFAULT false,
1076 username character varying(255),
1077 redirect_to_user_uuid character varying
1082 -- Name: permission_graph_edges; Type: VIEW; Schema: public; Owner: -
1085 CREATE VIEW public.permission_graph_edges AS
1086 SELECT groups.owner_uuid AS tail_uuid,
1087 groups.uuid AS head_uuid,
1091 SELECT users.owner_uuid AS tail_uuid,
1092 users.uuid AS head_uuid,
1096 SELECT links.tail_uuid,
1099 WHEN ((links.name)::text = 'can_read'::text) THEN 1
1100 WHEN ((links.name)::text = 'can_login'::text) THEN 1
1101 WHEN ((links.name)::text = 'can_write'::text) THEN 2
1102 WHEN ((links.name)::text = 'can_manage'::text) THEN 3
1106 WHERE ((links.link_class)::text = 'permission'::text);
1110 -- Name: pipeline_instances; Type: TABLE; Schema: public; Owner: -
1113 CREATE TABLE public.pipeline_instances (
1114 id integer NOT NULL,
1115 uuid character varying(255),
1116 owner_uuid character varying(255),
1117 created_at timestamp without time zone NOT NULL,
1118 modified_by_client_uuid character varying(255),
1119 modified_by_user_uuid character varying(255),
1120 modified_at timestamp without time zone,
1121 pipeline_template_uuid character varying(255),
1122 name character varying(255),
1124 updated_at timestamp without time zone NOT NULL,
1126 state character varying(255),
1127 components_summary text,
1128 started_at timestamp without time zone,
1129 finished_at timestamp without time zone,
1130 description character varying(524288)
1135 -- Name: pipeline_instances_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1138 CREATE SEQUENCE public.pipeline_instances_id_seq
1147 -- Name: pipeline_instances_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1150 ALTER SEQUENCE public.pipeline_instances_id_seq OWNED BY public.pipeline_instances.id;
1154 -- Name: pipeline_templates; Type: TABLE; Schema: public; Owner: -
1157 CREATE TABLE public.pipeline_templates (
1158 id integer NOT NULL,
1159 uuid character varying(255),
1160 owner_uuid character varying(255),
1161 created_at timestamp without time zone NOT NULL,
1162 modified_by_client_uuid character varying(255),
1163 modified_by_user_uuid character varying(255),
1164 modified_at timestamp without time zone,
1165 name character varying(255),
1167 updated_at timestamp without time zone NOT NULL,
1168 description character varying(524288)
1173 -- Name: pipeline_templates_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1176 CREATE SEQUENCE public.pipeline_templates_id_seq
1185 -- Name: pipeline_templates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1188 ALTER SEQUENCE public.pipeline_templates_id_seq OWNED BY public.pipeline_templates.id;
1192 -- Name: repositories; Type: TABLE; Schema: public; Owner: -
1195 CREATE TABLE public.repositories (
1196 id integer NOT NULL,
1197 uuid character varying(255) NOT NULL,
1198 owner_uuid character varying(255) NOT NULL,
1199 modified_by_client_uuid character varying(255),
1200 modified_by_user_uuid character varying(255),
1201 modified_at timestamp without time zone,
1202 name character varying(255),
1203 created_at timestamp without time zone NOT NULL,
1204 updated_at timestamp without time zone NOT NULL
1209 -- Name: repositories_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1212 CREATE SEQUENCE public.repositories_id_seq
1221 -- Name: repositories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1224 ALTER SEQUENCE public.repositories_id_seq OWNED BY public.repositories.id;
1228 -- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -
1231 CREATE TABLE public.schema_migrations (
1232 version character varying(255) NOT NULL
1237 -- Name: specimens; Type: TABLE; Schema: public; Owner: -
1240 CREATE TABLE public.specimens (
1241 id integer NOT NULL,
1242 uuid character varying(255),
1243 owner_uuid character varying(255),
1244 created_at timestamp without time zone NOT NULL,
1245 modified_by_client_uuid character varying(255),
1246 modified_by_user_uuid character varying(255),
1247 modified_at timestamp without time zone,
1248 material character varying(255),
1249 updated_at timestamp without time zone NOT NULL,
1255 -- Name: specimens_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1258 CREATE SEQUENCE public.specimens_id_seq
1267 -- Name: specimens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1270 ALTER SEQUENCE public.specimens_id_seq OWNED BY public.specimens.id;
1274 -- Name: traits; Type: TABLE; Schema: public; Owner: -
1277 CREATE TABLE public.traits (
1278 id integer NOT NULL,
1279 uuid character varying(255) NOT NULL,
1280 owner_uuid character varying(255) NOT NULL,
1281 modified_by_client_uuid character varying(255),
1282 modified_by_user_uuid character varying(255),
1283 modified_at timestamp without time zone,
1284 name character varying(255),
1286 created_at timestamp without time zone NOT NULL,
1287 updated_at timestamp without time zone NOT NULL
1292 -- Name: traits_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1295 CREATE SEQUENCE public.traits_id_seq
1304 -- Name: traits_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1307 ALTER SEQUENCE public.traits_id_seq OWNED BY public.traits.id;
1311 -- Name: trashed_groups; Type: TABLE; Schema: public; Owner: -
1314 CREATE TABLE public.trashed_groups (
1315 group_uuid character varying,
1316 trash_at timestamp without time zone
1321 -- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1324 CREATE SEQUENCE public.users_id_seq
1333 -- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1336 ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;
1340 -- Name: virtual_machines; Type: TABLE; Schema: public; Owner: -
1343 CREATE TABLE public.virtual_machines (
1344 id integer NOT NULL,
1345 uuid character varying(255) NOT NULL,
1346 owner_uuid character varying(255) NOT NULL,
1347 modified_by_client_uuid character varying(255),
1348 modified_by_user_uuid character varying(255),
1349 modified_at timestamp without time zone,
1350 hostname character varying(255),
1351 created_at timestamp without time zone NOT NULL,
1352 updated_at timestamp without time zone NOT NULL
1357 -- Name: virtual_machines_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1360 CREATE SEQUENCE public.virtual_machines_id_seq
1369 -- Name: virtual_machines_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1372 ALTER SEQUENCE public.virtual_machines_id_seq OWNED BY public.virtual_machines.id;
1376 -- Name: workflows; Type: TABLE; Schema: public; Owner: -
1379 CREATE TABLE public.workflows (
1380 id integer NOT NULL,
1381 uuid character varying(255),
1382 owner_uuid character varying(255),
1383 created_at timestamp without time zone NOT NULL,
1384 modified_at timestamp without time zone,
1385 modified_by_client_uuid character varying(255),
1386 modified_by_user_uuid character varying(255),
1387 name character varying(255),
1390 updated_at timestamp without time zone NOT NULL
1395 -- Name: workflows_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1398 CREATE SEQUENCE public.workflows_id_seq
1407 -- Name: workflows_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1410 ALTER SEQUENCE public.workflows_id_seq OWNED BY public.workflows.id;
1414 -- Name: api_client_authorizations id; Type: DEFAULT; Schema: public; Owner: -
1417 ALTER TABLE ONLY public.api_client_authorizations ALTER COLUMN id SET DEFAULT nextval('public.api_client_authorizations_id_seq'::regclass);
1421 -- Name: api_clients id; Type: DEFAULT; Schema: public; Owner: -
1424 ALTER TABLE ONLY public.api_clients ALTER COLUMN id SET DEFAULT nextval('public.api_clients_id_seq'::regclass);
1428 -- Name: authorized_keys id; Type: DEFAULT; Schema: public; Owner: -
1431 ALTER TABLE ONLY public.authorized_keys ALTER COLUMN id SET DEFAULT nextval('public.authorized_keys_id_seq'::regclass);
1435 -- Name: collections id; Type: DEFAULT; Schema: public; Owner: -
1438 ALTER TABLE ONLY public.collections ALTER COLUMN id SET DEFAULT nextval('public.collections_id_seq'::regclass);
1442 -- Name: container_requests id; Type: DEFAULT; Schema: public; Owner: -
1445 ALTER TABLE ONLY public.container_requests ALTER COLUMN id SET DEFAULT nextval('public.container_requests_id_seq'::regclass);
1449 -- Name: containers id; Type: DEFAULT; Schema: public; Owner: -
1452 ALTER TABLE ONLY public.containers ALTER COLUMN id SET DEFAULT nextval('public.containers_id_seq'::regclass);
1456 -- Name: groups id; Type: DEFAULT; Schema: public; Owner: -
1459 ALTER TABLE ONLY public.groups ALTER COLUMN id SET DEFAULT nextval('public.groups_id_seq'::regclass);
1463 -- Name: humans id; Type: DEFAULT; Schema: public; Owner: -
1466 ALTER TABLE ONLY public.humans ALTER COLUMN id SET DEFAULT nextval('public.humans_id_seq'::regclass);
1470 -- Name: job_tasks id; Type: DEFAULT; Schema: public; Owner: -
1473 ALTER TABLE ONLY public.job_tasks ALTER COLUMN id SET DEFAULT nextval('public.job_tasks_id_seq'::regclass);
1477 -- Name: jobs id; Type: DEFAULT; Schema: public; Owner: -
1480 ALTER TABLE ONLY public.jobs ALTER COLUMN id SET DEFAULT nextval('public.jobs_id_seq'::regclass);
1484 -- Name: keep_disks id; Type: DEFAULT; Schema: public; Owner: -
1487 ALTER TABLE ONLY public.keep_disks ALTER COLUMN id SET DEFAULT nextval('public.keep_disks_id_seq'::regclass);
1491 -- Name: keep_services id; Type: DEFAULT; Schema: public; Owner: -
1494 ALTER TABLE ONLY public.keep_services ALTER COLUMN id SET DEFAULT nextval('public.keep_services_id_seq'::regclass);
1498 -- Name: links id; Type: DEFAULT; Schema: public; Owner: -
1501 ALTER TABLE ONLY public.links ALTER COLUMN id SET DEFAULT nextval('public.links_id_seq'::regclass);
1505 -- Name: logs id; Type: DEFAULT; Schema: public; Owner: -
1508 ALTER TABLE ONLY public.logs ALTER COLUMN id SET DEFAULT nextval('public.logs_id_seq'::regclass);
1512 -- Name: nodes id; Type: DEFAULT; Schema: public; Owner: -
1515 ALTER TABLE ONLY public.nodes ALTER COLUMN id SET DEFAULT nextval('public.nodes_id_seq'::regclass);
1519 -- Name: pipeline_instances id; Type: DEFAULT; Schema: public; Owner: -
1522 ALTER TABLE ONLY public.pipeline_instances ALTER COLUMN id SET DEFAULT nextval('public.pipeline_instances_id_seq'::regclass);
1526 -- Name: pipeline_templates id; Type: DEFAULT; Schema: public; Owner: -
1529 ALTER TABLE ONLY public.pipeline_templates ALTER COLUMN id SET DEFAULT nextval('public.pipeline_templates_id_seq'::regclass);
1533 -- Name: repositories id; Type: DEFAULT; Schema: public; Owner: -
1536 ALTER TABLE ONLY public.repositories ALTER COLUMN id SET DEFAULT nextval('public.repositories_id_seq'::regclass);
1540 -- Name: specimens id; Type: DEFAULT; Schema: public; Owner: -
1543 ALTER TABLE ONLY public.specimens ALTER COLUMN id SET DEFAULT nextval('public.specimens_id_seq'::regclass);
1547 -- Name: traits id; Type: DEFAULT; Schema: public; Owner: -
1550 ALTER TABLE ONLY public.traits ALTER COLUMN id SET DEFAULT nextval('public.traits_id_seq'::regclass);
1554 -- Name: users id; Type: DEFAULT; Schema: public; Owner: -
1557 ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass);
1561 -- Name: virtual_machines id; Type: DEFAULT; Schema: public; Owner: -
1564 ALTER TABLE ONLY public.virtual_machines ALTER COLUMN id SET DEFAULT nextval('public.virtual_machines_id_seq'::regclass);
1568 -- Name: workflows id; Type: DEFAULT; Schema: public; Owner: -
1571 ALTER TABLE ONLY public.workflows ALTER COLUMN id SET DEFAULT nextval('public.workflows_id_seq'::regclass);
1575 -- Name: api_client_authorizations api_client_authorizations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1578 ALTER TABLE ONLY public.api_client_authorizations
1579 ADD CONSTRAINT api_client_authorizations_pkey PRIMARY KEY (id);
1583 -- Name: api_clients api_clients_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1586 ALTER TABLE ONLY public.api_clients
1587 ADD CONSTRAINT api_clients_pkey PRIMARY KEY (id);
1591 -- Name: ar_internal_metadata ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1594 ALTER TABLE ONLY public.ar_internal_metadata
1595 ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
1599 -- Name: authorized_keys authorized_keys_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1602 ALTER TABLE ONLY public.authorized_keys
1603 ADD CONSTRAINT authorized_keys_pkey PRIMARY KEY (id);
1607 -- Name: collections collections_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1610 ALTER TABLE ONLY public.collections
1611 ADD CONSTRAINT collections_pkey PRIMARY KEY (id);
1615 -- Name: container_requests container_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1618 ALTER TABLE ONLY public.container_requests
1619 ADD CONSTRAINT container_requests_pkey PRIMARY KEY (id);
1623 -- Name: containers containers_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1626 ALTER TABLE ONLY public.containers
1627 ADD CONSTRAINT containers_pkey PRIMARY KEY (id);
1631 -- Name: groups groups_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1634 ALTER TABLE ONLY public.groups
1635 ADD CONSTRAINT groups_pkey PRIMARY KEY (id);
1639 -- Name: humans humans_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1642 ALTER TABLE ONLY public.humans
1643 ADD CONSTRAINT humans_pkey PRIMARY KEY (id);
1647 -- Name: job_tasks job_tasks_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1650 ALTER TABLE ONLY public.job_tasks
1651 ADD CONSTRAINT job_tasks_pkey PRIMARY KEY (id);
1655 -- Name: jobs jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1658 ALTER TABLE ONLY public.jobs
1659 ADD CONSTRAINT jobs_pkey PRIMARY KEY (id);
1663 -- Name: keep_disks keep_disks_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1666 ALTER TABLE ONLY public.keep_disks
1667 ADD CONSTRAINT keep_disks_pkey PRIMARY KEY (id);
1671 -- Name: keep_services keep_services_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1674 ALTER TABLE ONLY public.keep_services
1675 ADD CONSTRAINT keep_services_pkey PRIMARY KEY (id);
1679 -- Name: links links_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1682 ALTER TABLE ONLY public.links
1683 ADD CONSTRAINT links_pkey PRIMARY KEY (id);
1687 -- Name: logs logs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1690 ALTER TABLE ONLY public.logs
1691 ADD CONSTRAINT logs_pkey PRIMARY KEY (id);
1695 -- Name: nodes nodes_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1698 ALTER TABLE ONLY public.nodes
1699 ADD CONSTRAINT nodes_pkey PRIMARY KEY (id);
1703 -- Name: pipeline_instances pipeline_instances_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1706 ALTER TABLE ONLY public.pipeline_instances
1707 ADD CONSTRAINT pipeline_instances_pkey PRIMARY KEY (id);
1711 -- Name: pipeline_templates pipeline_templates_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1714 ALTER TABLE ONLY public.pipeline_templates
1715 ADD CONSTRAINT pipeline_templates_pkey PRIMARY KEY (id);
1719 -- Name: repositories repositories_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1722 ALTER TABLE ONLY public.repositories
1723 ADD CONSTRAINT repositories_pkey PRIMARY KEY (id);
1727 -- Name: specimens specimens_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1730 ALTER TABLE ONLY public.specimens
1731 ADD CONSTRAINT specimens_pkey PRIMARY KEY (id);
1735 -- Name: traits traits_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1738 ALTER TABLE ONLY public.traits
1739 ADD CONSTRAINT traits_pkey PRIMARY KEY (id);
1743 -- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1746 ALTER TABLE ONLY public.users
1747 ADD CONSTRAINT users_pkey PRIMARY KEY (id);
1751 -- Name: virtual_machines virtual_machines_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1754 ALTER TABLE ONLY public.virtual_machines
1755 ADD CONSTRAINT virtual_machines_pkey PRIMARY KEY (id);
1759 -- Name: workflows workflows_pkey; Type: CONSTRAINT; Schema: public; Owner: -
1762 ALTER TABLE ONLY public.workflows
1763 ADD CONSTRAINT workflows_pkey PRIMARY KEY (id);
1767 -- Name: api_client_authorizations_search_index; Type: INDEX; Schema: public; Owner: -
1770 CREATE INDEX api_client_authorizations_search_index ON public.api_client_authorizations USING btree (api_token, created_by_ip_address, last_used_by_ip_address, default_owner_uuid, uuid);
1774 -- Name: api_clients_search_index; Type: INDEX; Schema: public; Owner: -
1777 CREATE INDEX api_clients_search_index ON public.api_clients USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, name, url_prefix);
1781 -- Name: authorized_keys_search_index; Type: INDEX; Schema: public; Owner: -
1784 CREATE INDEX authorized_keys_search_index ON public.authorized_keys USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, name, key_type, authorized_user_uuid);
1788 -- Name: collection_index_on_properties; Type: INDEX; Schema: public; Owner: -
1791 CREATE INDEX collection_index_on_properties ON public.collections USING gin (properties);
1795 -- Name: collections_full_text_search_idx; Type: INDEX; Schema: public; Owner: -
1798 CREATE INDEX collections_full_text_search_idx ON public.collections USING gin (to_tsvector('english'::regconfig, substr((((((((((((((((((COALESCE(owner_uuid, ''::character varying))::text || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(portable_data_hash, ''::character varying))::text) || ' '::text) || (COALESCE(uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || (COALESCE(description, ''::character varying))::text) || ' '::text) || COALESCE((properties)::text, ''::text)) || ' '::text) || COALESCE(file_names, ''::text)), 0, 1000000)));
1802 -- Name: collections_search_index; Type: INDEX; Schema: public; Owner: -
1805 CREATE INDEX collections_search_index ON public.collections USING btree (owner_uuid, modified_by_client_uuid, modified_by_user_uuid, portable_data_hash, uuid, name, current_version_uuid);
1809 -- Name: collections_trgm_text_search_idx; Type: INDEX; Schema: public; Owner: -
1812 CREATE INDEX collections_trgm_text_search_idx ON public.collections USING gin (((((((((((((((((((COALESCE(owner_uuid, ''::character varying))::text || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(portable_data_hash, ''::character varying))::text) || ' '::text) || (COALESCE(uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || (COALESCE(description, ''::character varying))::text) || ' '::text) || COALESCE((properties)::text, ''::text)) || ' '::text) || COALESCE(file_names, ''::text))) public.gin_trgm_ops);
1816 -- Name: container_requests_full_text_search_idx; Type: INDEX; Schema: public; Owner: -
1819 CREATE INDEX container_requests_full_text_search_idx ON public.container_requests USING gin (to_tsvector('english'::regconfig, substr((((((((((((((((((((((((((((((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || COALESCE(description, ''::text)) || ' '::text) || COALESCE((properties)::text, ''::text)) || ' '::text) || (COALESCE(state, ''::character varying))::text) || ' '::text) || (COALESCE(requesting_container_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(container_uuid, ''::character varying))::text) || ' '::text) || COALESCE(runtime_constraints, ''::text)) || ' '::text) || (COALESCE(container_image, ''::character varying))::text) || ' '::text) || COALESCE(environment, ''::text)) || ' '::text) || (COALESCE(cwd, ''::character varying))::text) || ' '::text) || COALESCE(command, ''::text)) || ' '::text) || (COALESCE(output_path, ''::character varying))::text) || ' '::text) || COALESCE(filters, ''::text)) || ' '::text) || COALESCE(scheduling_parameters, ''::text)) || ' '::text) || (COALESCE(output_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(log_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(output_name, ''::character varying))::text), 0, 1000000)));
1823 -- Name: container_requests_index_on_properties; Type: INDEX; Schema: public; Owner: -
1826 CREATE INDEX container_requests_index_on_properties ON public.container_requests USING gin (properties);
1830 -- Name: container_requests_search_index; Type: INDEX; Schema: public; Owner: -
1833 CREATE INDEX container_requests_search_index ON public.container_requests USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, name, state, requesting_container_uuid, container_uuid, container_image, cwd, output_path, output_uuid, log_uuid, output_name);
1837 -- Name: container_requests_trgm_text_search_idx; Type: INDEX; Schema: public; Owner: -
1840 CREATE INDEX container_requests_trgm_text_search_idx ON public.container_requests USING gin (((((((((((((((((((((((((((((((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || COALESCE(description, ''::text)) || ' '::text) || COALESCE((properties)::text, ''::text)) || ' '::text) || (COALESCE(state, ''::character varying))::text) || ' '::text) || (COALESCE(requesting_container_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(container_uuid, ''::character varying))::text) || ' '::text) || COALESCE(runtime_constraints, ''::text)) || ' '::text) || (COALESCE(container_image, ''::character varying))::text) || ' '::text) || COALESCE(environment, ''::text)) || ' '::text) || (COALESCE(cwd, ''::character varying))::text) || ' '::text) || COALESCE(command, ''::text)) || ' '::text) || (COALESCE(output_path, ''::character varying))::text) || ' '::text) || COALESCE(filters, ''::text)) || ' '::text) || COALESCE(scheduling_parameters, ''::text)) || ' '::text) || (COALESCE(output_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(log_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(output_name, ''::character varying))::text)) public.gin_trgm_ops);
1844 -- Name: containers_search_index; Type: INDEX; Schema: public; Owner: -
1847 CREATE INDEX containers_search_index ON public.containers USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, state, log, cwd, output_path, output, container_image, auth_uuid, locked_by_uuid);
1851 -- Name: group_index_on_properties; Type: INDEX; Schema: public; Owner: -
1854 CREATE INDEX group_index_on_properties ON public.groups USING gin (properties);
1858 -- Name: groups_full_text_search_idx; Type: INDEX; Schema: public; Owner: -
1861 CREATE INDEX groups_full_text_search_idx ON public.groups USING gin (to_tsvector('english'::regconfig, substr((((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || (COALESCE(description, ''::character varying))::text) || ' '::text) || (COALESCE(group_class, ''::character varying))::text) || ' '::text) || COALESCE((properties)::text, ''::text)), 0, 1000000)));
1865 -- Name: groups_search_index; Type: INDEX; Schema: public; Owner: -
1868 CREATE INDEX groups_search_index ON public.groups USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, name, group_class);
1872 -- Name: groups_trgm_text_search_idx; Type: INDEX; Schema: public; Owner: -
1875 CREATE INDEX groups_trgm_text_search_idx ON public.groups USING gin (((((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || (COALESCE(description, ''::character varying))::text) || ' '::text) || (COALESCE(group_class, ''::character varying))::text) || ' '::text) || COALESCE((properties)::text, ''::text))) public.gin_trgm_ops);
1879 -- Name: humans_search_index; Type: INDEX; Schema: public; Owner: -
1882 CREATE INDEX humans_search_index ON public.humans USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid);
1886 -- Name: index_api_client_authorizations_on_api_client_id; Type: INDEX; Schema: public; Owner: -
1889 CREATE INDEX index_api_client_authorizations_on_api_client_id ON public.api_client_authorizations USING btree (api_client_id);
1893 -- Name: index_api_client_authorizations_on_api_token; Type: INDEX; Schema: public; Owner: -
1896 CREATE UNIQUE INDEX index_api_client_authorizations_on_api_token ON public.api_client_authorizations USING btree (api_token);
1900 -- Name: index_api_client_authorizations_on_expires_at; Type: INDEX; Schema: public; Owner: -
1903 CREATE INDEX index_api_client_authorizations_on_expires_at ON public.api_client_authorizations USING btree (expires_at);
1907 -- Name: index_api_client_authorizations_on_user_id; Type: INDEX; Schema: public; Owner: -
1910 CREATE INDEX index_api_client_authorizations_on_user_id ON public.api_client_authorizations USING btree (user_id);
1914 -- Name: index_api_client_authorizations_on_uuid; Type: INDEX; Schema: public; Owner: -
1917 CREATE UNIQUE INDEX index_api_client_authorizations_on_uuid ON public.api_client_authorizations USING btree (uuid);
1921 -- Name: index_api_clients_on_created_at; Type: INDEX; Schema: public; Owner: -
1924 CREATE INDEX index_api_clients_on_created_at ON public.api_clients USING btree (created_at);
1928 -- Name: index_api_clients_on_modified_at; Type: INDEX; Schema: public; Owner: -
1931 CREATE INDEX index_api_clients_on_modified_at ON public.api_clients USING btree (modified_at);
1935 -- Name: index_api_clients_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
1938 CREATE INDEX index_api_clients_on_owner_uuid ON public.api_clients USING btree (owner_uuid);
1942 -- Name: index_api_clients_on_uuid; Type: INDEX; Schema: public; Owner: -
1945 CREATE UNIQUE INDEX index_api_clients_on_uuid ON public.api_clients USING btree (uuid);
1949 -- Name: index_authkeys_on_user_and_expires_at; Type: INDEX; Schema: public; Owner: -
1952 CREATE INDEX index_authkeys_on_user_and_expires_at ON public.authorized_keys USING btree (authorized_user_uuid, expires_at);
1956 -- Name: index_authorized_keys_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
1959 CREATE INDEX index_authorized_keys_on_owner_uuid ON public.authorized_keys USING btree (owner_uuid);
1963 -- Name: index_authorized_keys_on_uuid; Type: INDEX; Schema: public; Owner: -
1966 CREATE UNIQUE INDEX index_authorized_keys_on_uuid ON public.authorized_keys USING btree (uuid);
1970 -- Name: index_collections_on_created_at; Type: INDEX; Schema: public; Owner: -
1973 CREATE INDEX index_collections_on_created_at ON public.collections USING btree (created_at);
1977 -- Name: index_collections_on_current_version_uuid_and_version; Type: INDEX; Schema: public; Owner: -
1980 CREATE UNIQUE INDEX index_collections_on_current_version_uuid_and_version ON public.collections USING btree (current_version_uuid, version);
1984 -- Name: index_collections_on_delete_at; Type: INDEX; Schema: public; Owner: -
1987 CREATE INDEX index_collections_on_delete_at ON public.collections USING btree (delete_at);
1991 -- Name: index_collections_on_is_trashed; Type: INDEX; Schema: public; Owner: -
1994 CREATE INDEX index_collections_on_is_trashed ON public.collections USING btree (is_trashed);
1998 -- Name: index_collections_on_modified_at; Type: INDEX; Schema: public; Owner: -
2001 CREATE INDEX index_collections_on_modified_at ON public.collections USING btree (modified_at);
2005 -- Name: index_collections_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2008 CREATE INDEX index_collections_on_modified_at_uuid ON public.collections USING btree (modified_at DESC, uuid);
2012 -- Name: index_collections_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2015 CREATE INDEX index_collections_on_owner_uuid ON public.collections USING btree (owner_uuid);
2019 -- Name: index_collections_on_owner_uuid_and_name; Type: INDEX; Schema: public; Owner: -
2022 CREATE UNIQUE INDEX index_collections_on_owner_uuid_and_name ON public.collections USING btree (owner_uuid, name) WHERE ((is_trashed = false) AND ((current_version_uuid)::text = (uuid)::text));
2026 -- Name: index_collections_on_portable_data_hash_and_trash_at; Type: INDEX; Schema: public; Owner: -
2029 CREATE INDEX index_collections_on_portable_data_hash_and_trash_at ON public.collections USING btree (portable_data_hash, trash_at);
2033 -- Name: index_collections_on_trash_at; Type: INDEX; Schema: public; Owner: -
2036 CREATE INDEX index_collections_on_trash_at ON public.collections USING btree (trash_at);
2040 -- Name: index_collections_on_uuid; Type: INDEX; Schema: public; Owner: -
2043 CREATE UNIQUE INDEX index_collections_on_uuid ON public.collections USING btree (uuid);
2047 -- Name: index_container_requests_on_container_uuid; Type: INDEX; Schema: public; Owner: -
2050 CREATE INDEX index_container_requests_on_container_uuid ON public.container_requests USING btree (container_uuid);
2054 -- Name: index_container_requests_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2057 CREATE INDEX index_container_requests_on_modified_at_uuid ON public.container_requests USING btree (modified_at DESC, uuid);
2061 -- Name: index_container_requests_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2064 CREATE INDEX index_container_requests_on_owner_uuid ON public.container_requests USING btree (owner_uuid);
2068 -- Name: index_container_requests_on_requesting_container_uuid; Type: INDEX; Schema: public; Owner: -
2071 CREATE INDEX index_container_requests_on_requesting_container_uuid ON public.container_requests USING btree (requesting_container_uuid);
2075 -- Name: index_container_requests_on_uuid; Type: INDEX; Schema: public; Owner: -
2078 CREATE UNIQUE INDEX index_container_requests_on_uuid ON public.container_requests USING btree (uuid);
2082 -- Name: index_containers_on_auth_uuid; Type: INDEX; Schema: public; Owner: -
2085 CREATE INDEX index_containers_on_auth_uuid ON public.containers USING btree (auth_uuid);
2089 -- Name: index_containers_on_locked_by_uuid_and_priority; Type: INDEX; Schema: public; Owner: -
2092 CREATE INDEX index_containers_on_locked_by_uuid_and_priority ON public.containers USING btree (locked_by_uuid, priority);
2096 -- Name: index_containers_on_locked_by_uuid_and_uuid; Type: INDEX; Schema: public; Owner: -
2099 CREATE INDEX index_containers_on_locked_by_uuid_and_uuid ON public.containers USING btree (locked_by_uuid, uuid);
2103 -- Name: index_containers_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2106 CREATE INDEX index_containers_on_modified_at_uuid ON public.containers USING btree (modified_at DESC, uuid);
2110 -- Name: index_containers_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2113 CREATE INDEX index_containers_on_owner_uuid ON public.containers USING btree (owner_uuid);
2117 -- Name: index_containers_on_queued_state; Type: INDEX; Schema: public; Owner: -
2120 CREATE INDEX index_containers_on_queued_state ON public.containers USING btree (state, ((priority > 0)));
2124 -- Name: index_containers_on_reuse_columns; Type: INDEX; Schema: public; Owner: -
2127 CREATE INDEX index_containers_on_reuse_columns ON public.containers USING btree (md5(command), cwd, md5(environment), output_path, container_image, md5(mounts), secret_mounts_md5, md5(runtime_constraints));
2131 -- Name: index_containers_on_runtime_status; Type: INDEX; Schema: public; Owner: -
2134 CREATE INDEX index_containers_on_runtime_status ON public.containers USING gin (runtime_status);
2138 -- Name: index_containers_on_secret_mounts_md5; Type: INDEX; Schema: public; Owner: -
2141 CREATE INDEX index_containers_on_secret_mounts_md5 ON public.containers USING btree (secret_mounts_md5);
2145 -- Name: index_containers_on_uuid; Type: INDEX; Schema: public; Owner: -
2148 CREATE UNIQUE INDEX index_containers_on_uuid ON public.containers USING btree (uuid);
2152 -- Name: index_groups_on_created_at; Type: INDEX; Schema: public; Owner: -
2155 CREATE INDEX index_groups_on_created_at ON public.groups USING btree (created_at);
2159 -- Name: index_groups_on_delete_at; Type: INDEX; Schema: public; Owner: -
2162 CREATE INDEX index_groups_on_delete_at ON public.groups USING btree (delete_at);
2166 -- Name: index_groups_on_group_class; Type: INDEX; Schema: public; Owner: -
2169 CREATE INDEX index_groups_on_group_class ON public.groups USING btree (group_class);
2173 -- Name: index_groups_on_is_trashed; Type: INDEX; Schema: public; Owner: -
2176 CREATE INDEX index_groups_on_is_trashed ON public.groups USING btree (is_trashed);
2180 -- Name: index_groups_on_modified_at; Type: INDEX; Schema: public; Owner: -
2183 CREATE INDEX index_groups_on_modified_at ON public.groups USING btree (modified_at);
2187 -- Name: index_groups_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2190 CREATE INDEX index_groups_on_modified_at_uuid ON public.groups USING btree (modified_at DESC, uuid);
2194 -- Name: index_groups_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2197 CREATE INDEX index_groups_on_owner_uuid ON public.groups USING btree (owner_uuid);
2201 -- Name: index_groups_on_owner_uuid_and_name; Type: INDEX; Schema: public; Owner: -
2204 CREATE UNIQUE INDEX index_groups_on_owner_uuid_and_name ON public.groups USING btree (owner_uuid, name) WHERE (is_trashed = false);
2208 -- Name: index_groups_on_trash_at; Type: INDEX; Schema: public; Owner: -
2211 CREATE INDEX index_groups_on_trash_at ON public.groups USING btree (trash_at);
2215 -- Name: index_groups_on_uuid; Type: INDEX; Schema: public; Owner: -
2218 CREATE UNIQUE INDEX index_groups_on_uuid ON public.groups USING btree (uuid);
2222 -- Name: index_humans_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2225 CREATE INDEX index_humans_on_owner_uuid ON public.humans USING btree (owner_uuid);
2229 -- Name: index_humans_on_uuid; Type: INDEX; Schema: public; Owner: -
2232 CREATE UNIQUE INDEX index_humans_on_uuid ON public.humans USING btree (uuid);
2236 -- Name: index_job_tasks_on_created_at; Type: INDEX; Schema: public; Owner: -
2239 CREATE INDEX index_job_tasks_on_created_at ON public.job_tasks USING btree (created_at);
2243 -- Name: index_job_tasks_on_created_by_job_task_uuid; Type: INDEX; Schema: public; Owner: -
2246 CREATE INDEX index_job_tasks_on_created_by_job_task_uuid ON public.job_tasks USING btree (created_by_job_task_uuid);
2250 -- Name: index_job_tasks_on_job_uuid; Type: INDEX; Schema: public; Owner: -
2253 CREATE INDEX index_job_tasks_on_job_uuid ON public.job_tasks USING btree (job_uuid);
2257 -- Name: index_job_tasks_on_modified_at; Type: INDEX; Schema: public; Owner: -
2260 CREATE INDEX index_job_tasks_on_modified_at ON public.job_tasks USING btree (modified_at);
2264 -- Name: index_job_tasks_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2267 CREATE INDEX index_job_tasks_on_owner_uuid ON public.job_tasks USING btree (owner_uuid);
2271 -- Name: index_job_tasks_on_sequence; Type: INDEX; Schema: public; Owner: -
2274 CREATE INDEX index_job_tasks_on_sequence ON public.job_tasks USING btree (sequence);
2278 -- Name: index_job_tasks_on_success; Type: INDEX; Schema: public; Owner: -
2281 CREATE INDEX index_job_tasks_on_success ON public.job_tasks USING btree (success);
2285 -- Name: index_job_tasks_on_uuid; Type: INDEX; Schema: public; Owner: -
2288 CREATE UNIQUE INDEX index_job_tasks_on_uuid ON public.job_tasks USING btree (uuid);
2292 -- Name: index_jobs_on_created_at; Type: INDEX; Schema: public; Owner: -
2295 CREATE INDEX index_jobs_on_created_at ON public.jobs USING btree (created_at);
2299 -- Name: index_jobs_on_finished_at; Type: INDEX; Schema: public; Owner: -
2302 CREATE INDEX index_jobs_on_finished_at ON public.jobs USING btree (finished_at);
2306 -- Name: index_jobs_on_modified_at; Type: INDEX; Schema: public; Owner: -
2309 CREATE INDEX index_jobs_on_modified_at ON public.jobs USING btree (modified_at);
2313 -- Name: index_jobs_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2316 CREATE INDEX index_jobs_on_modified_at_uuid ON public.jobs USING btree (modified_at DESC, uuid);
2320 -- Name: index_jobs_on_output; Type: INDEX; Schema: public; Owner: -
2323 CREATE INDEX index_jobs_on_output ON public.jobs USING btree (output);
2327 -- Name: index_jobs_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2330 CREATE INDEX index_jobs_on_owner_uuid ON public.jobs USING btree (owner_uuid);
2334 -- Name: index_jobs_on_script; Type: INDEX; Schema: public; Owner: -
2337 CREATE INDEX index_jobs_on_script ON public.jobs USING btree (script);
2341 -- Name: index_jobs_on_script_parameters_digest; Type: INDEX; Schema: public; Owner: -
2344 CREATE INDEX index_jobs_on_script_parameters_digest ON public.jobs USING btree (script_parameters_digest);
2348 -- Name: index_jobs_on_started_at; Type: INDEX; Schema: public; Owner: -
2351 CREATE INDEX index_jobs_on_started_at ON public.jobs USING btree (started_at);
2355 -- Name: index_jobs_on_submit_id; Type: INDEX; Schema: public; Owner: -
2358 CREATE UNIQUE INDEX index_jobs_on_submit_id ON public.jobs USING btree (submit_id);
2362 -- Name: index_jobs_on_uuid; Type: INDEX; Schema: public; Owner: -
2365 CREATE UNIQUE INDEX index_jobs_on_uuid ON public.jobs USING btree (uuid);
2369 -- Name: index_keep_disks_on_filesystem_uuid; Type: INDEX; Schema: public; Owner: -
2372 CREATE INDEX index_keep_disks_on_filesystem_uuid ON public.keep_disks USING btree (filesystem_uuid);
2376 -- Name: index_keep_disks_on_last_ping_at; Type: INDEX; Schema: public; Owner: -
2379 CREATE INDEX index_keep_disks_on_last_ping_at ON public.keep_disks USING btree (last_ping_at);
2383 -- Name: index_keep_disks_on_node_uuid; Type: INDEX; Schema: public; Owner: -
2386 CREATE INDEX index_keep_disks_on_node_uuid ON public.keep_disks USING btree (node_uuid);
2390 -- Name: index_keep_disks_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2393 CREATE INDEX index_keep_disks_on_owner_uuid ON public.keep_disks USING btree (owner_uuid);
2397 -- Name: index_keep_disks_on_uuid; Type: INDEX; Schema: public; Owner: -
2400 CREATE UNIQUE INDEX index_keep_disks_on_uuid ON public.keep_disks USING btree (uuid);
2404 -- Name: index_keep_services_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2407 CREATE INDEX index_keep_services_on_owner_uuid ON public.keep_services USING btree (owner_uuid);
2411 -- Name: index_keep_services_on_uuid; Type: INDEX; Schema: public; Owner: -
2414 CREATE UNIQUE INDEX index_keep_services_on_uuid ON public.keep_services USING btree (uuid);
2418 -- Name: index_links_on_created_at; Type: INDEX; Schema: public; Owner: -
2421 CREATE INDEX index_links_on_created_at ON public.links USING btree (created_at);
2425 -- Name: index_links_on_head_uuid; Type: INDEX; Schema: public; Owner: -
2428 CREATE INDEX index_links_on_head_uuid ON public.links USING btree (head_uuid);
2432 -- Name: index_links_on_modified_at; Type: INDEX; Schema: public; Owner: -
2435 CREATE INDEX index_links_on_modified_at ON public.links USING btree (modified_at);
2439 -- Name: index_links_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2442 CREATE INDEX index_links_on_modified_at_uuid ON public.links USING btree (modified_at DESC, uuid);
2446 -- Name: index_links_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2449 CREATE INDEX index_links_on_owner_uuid ON public.links USING btree (owner_uuid);
2453 -- Name: index_links_on_substring_head_uuid; Type: INDEX; Schema: public; Owner: -
2456 CREATE INDEX index_links_on_substring_head_uuid ON public.links USING btree ("substring"((head_uuid)::text, 7, 5));
2460 -- Name: index_links_on_substring_tail_uuid; Type: INDEX; Schema: public; Owner: -
2463 CREATE INDEX index_links_on_substring_tail_uuid ON public.links USING btree ("substring"((tail_uuid)::text, 7, 5));
2467 -- Name: index_links_on_tail_uuid; Type: INDEX; Schema: public; Owner: -
2470 CREATE INDEX index_links_on_tail_uuid ON public.links USING btree (tail_uuid);
2474 -- Name: index_links_on_uuid; Type: INDEX; Schema: public; Owner: -
2477 CREATE UNIQUE INDEX index_links_on_uuid ON public.links USING btree (uuid);
2481 -- Name: index_logs_on_created_at; Type: INDEX; Schema: public; Owner: -
2484 CREATE INDEX index_logs_on_created_at ON public.logs USING btree (created_at);
2488 -- Name: index_logs_on_event_at; Type: INDEX; Schema: public; Owner: -
2491 CREATE INDEX index_logs_on_event_at ON public.logs USING btree (event_at);
2495 -- Name: index_logs_on_event_type; Type: INDEX; Schema: public; Owner: -
2498 CREATE INDEX index_logs_on_event_type ON public.logs USING btree (event_type);
2502 -- Name: index_logs_on_modified_at; Type: INDEX; Schema: public; Owner: -
2505 CREATE INDEX index_logs_on_modified_at ON public.logs USING btree (modified_at);
2509 -- Name: index_logs_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2512 CREATE INDEX index_logs_on_modified_at_uuid ON public.logs USING btree (modified_at DESC, uuid);
2516 -- Name: index_logs_on_object_owner_uuid; Type: INDEX; Schema: public; Owner: -
2519 CREATE INDEX index_logs_on_object_owner_uuid ON public.logs USING btree (object_owner_uuid);
2523 -- Name: index_logs_on_object_uuid; Type: INDEX; Schema: public; Owner: -
2526 CREATE INDEX index_logs_on_object_uuid ON public.logs USING btree (object_uuid);
2530 -- Name: index_logs_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2533 CREATE INDEX index_logs_on_owner_uuid ON public.logs USING btree (owner_uuid);
2537 -- Name: index_logs_on_summary; Type: INDEX; Schema: public; Owner: -
2540 CREATE INDEX index_logs_on_summary ON public.logs USING btree (summary);
2544 -- Name: index_logs_on_uuid; Type: INDEX; Schema: public; Owner: -
2547 CREATE UNIQUE INDEX index_logs_on_uuid ON public.logs USING btree (uuid);
2551 -- Name: index_nodes_on_created_at; Type: INDEX; Schema: public; Owner: -
2554 CREATE INDEX index_nodes_on_created_at ON public.nodes USING btree (created_at);
2558 -- Name: index_nodes_on_hostname; Type: INDEX; Schema: public; Owner: -
2561 CREATE INDEX index_nodes_on_hostname ON public.nodes USING btree (hostname);
2565 -- Name: index_nodes_on_modified_at; Type: INDEX; Schema: public; Owner: -
2568 CREATE INDEX index_nodes_on_modified_at ON public.nodes USING btree (modified_at);
2572 -- Name: index_nodes_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2575 CREATE INDEX index_nodes_on_owner_uuid ON public.nodes USING btree (owner_uuid);
2579 -- Name: index_nodes_on_slot_number; Type: INDEX; Schema: public; Owner: -
2582 CREATE UNIQUE INDEX index_nodes_on_slot_number ON public.nodes USING btree (slot_number);
2586 -- Name: index_nodes_on_uuid; Type: INDEX; Schema: public; Owner: -
2589 CREATE UNIQUE INDEX index_nodes_on_uuid ON public.nodes USING btree (uuid);
2593 -- Name: index_pipeline_instances_on_created_at; Type: INDEX; Schema: public; Owner: -
2596 CREATE INDEX index_pipeline_instances_on_created_at ON public.pipeline_instances USING btree (created_at);
2600 -- Name: index_pipeline_instances_on_modified_at; Type: INDEX; Schema: public; Owner: -
2603 CREATE INDEX index_pipeline_instances_on_modified_at ON public.pipeline_instances USING btree (modified_at);
2607 -- Name: index_pipeline_instances_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2610 CREATE INDEX index_pipeline_instances_on_modified_at_uuid ON public.pipeline_instances USING btree (modified_at DESC, uuid);
2614 -- Name: index_pipeline_instances_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2617 CREATE INDEX index_pipeline_instances_on_owner_uuid ON public.pipeline_instances USING btree (owner_uuid);
2621 -- Name: index_pipeline_instances_on_uuid; Type: INDEX; Schema: public; Owner: -
2624 CREATE UNIQUE INDEX index_pipeline_instances_on_uuid ON public.pipeline_instances USING btree (uuid);
2628 -- Name: index_pipeline_templates_on_created_at; Type: INDEX; Schema: public; Owner: -
2631 CREATE INDEX index_pipeline_templates_on_created_at ON public.pipeline_templates USING btree (created_at);
2635 -- Name: index_pipeline_templates_on_modified_at; Type: INDEX; Schema: public; Owner: -
2638 CREATE INDEX index_pipeline_templates_on_modified_at ON public.pipeline_templates USING btree (modified_at);
2642 -- Name: index_pipeline_templates_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2645 CREATE INDEX index_pipeline_templates_on_modified_at_uuid ON public.pipeline_templates USING btree (modified_at DESC, uuid);
2649 -- Name: index_pipeline_templates_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2652 CREATE INDEX index_pipeline_templates_on_owner_uuid ON public.pipeline_templates USING btree (owner_uuid);
2656 -- Name: index_pipeline_templates_on_uuid; Type: INDEX; Schema: public; Owner: -
2659 CREATE UNIQUE INDEX index_pipeline_templates_on_uuid ON public.pipeline_templates USING btree (uuid);
2663 -- Name: index_repositories_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2666 CREATE INDEX index_repositories_on_modified_at_uuid ON public.repositories USING btree (modified_at DESC, uuid);
2670 -- Name: index_repositories_on_name; Type: INDEX; Schema: public; Owner: -
2673 CREATE UNIQUE INDEX index_repositories_on_name ON public.repositories USING btree (name);
2677 -- Name: index_repositories_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2680 CREATE INDEX index_repositories_on_owner_uuid ON public.repositories USING btree (owner_uuid);
2684 -- Name: index_repositories_on_uuid; Type: INDEX; Schema: public; Owner: -
2687 CREATE UNIQUE INDEX index_repositories_on_uuid ON public.repositories USING btree (uuid);
2691 -- Name: index_specimens_on_created_at; Type: INDEX; Schema: public; Owner: -
2694 CREATE INDEX index_specimens_on_created_at ON public.specimens USING btree (created_at);
2698 -- Name: index_specimens_on_modified_at; Type: INDEX; Schema: public; Owner: -
2701 CREATE INDEX index_specimens_on_modified_at ON public.specimens USING btree (modified_at);
2705 -- Name: index_specimens_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2708 CREATE INDEX index_specimens_on_owner_uuid ON public.specimens USING btree (owner_uuid);
2712 -- Name: index_specimens_on_uuid; Type: INDEX; Schema: public; Owner: -
2715 CREATE UNIQUE INDEX index_specimens_on_uuid ON public.specimens USING btree (uuid);
2719 -- Name: index_traits_on_name; Type: INDEX; Schema: public; Owner: -
2722 CREATE INDEX index_traits_on_name ON public.traits USING btree (name);
2726 -- Name: index_traits_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2729 CREATE INDEX index_traits_on_owner_uuid ON public.traits USING btree (owner_uuid);
2733 -- Name: index_traits_on_uuid; Type: INDEX; Schema: public; Owner: -
2736 CREATE UNIQUE INDEX index_traits_on_uuid ON public.traits USING btree (uuid);
2740 -- Name: index_trashed_groups_on_group_uuid; Type: INDEX; Schema: public; Owner: -
2743 CREATE UNIQUE INDEX index_trashed_groups_on_group_uuid ON public.trashed_groups USING btree (group_uuid);
2747 -- Name: index_users_on_created_at; Type: INDEX; Schema: public; Owner: -
2750 CREATE INDEX index_users_on_created_at ON public.users USING btree (created_at);
2754 -- Name: index_users_on_identity_url; Type: INDEX; Schema: public; Owner: -
2757 CREATE UNIQUE INDEX index_users_on_identity_url ON public.users USING btree (identity_url);
2761 -- Name: index_users_on_modified_at; Type: INDEX; Schema: public; Owner: -
2764 CREATE INDEX index_users_on_modified_at ON public.users USING btree (modified_at);
2768 -- Name: index_users_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2771 CREATE INDEX index_users_on_modified_at_uuid ON public.users USING btree (modified_at DESC, uuid);
2775 -- Name: index_users_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2778 CREATE INDEX index_users_on_owner_uuid ON public.users USING btree (owner_uuid);
2782 -- Name: index_users_on_username; Type: INDEX; Schema: public; Owner: -
2785 CREATE UNIQUE INDEX index_users_on_username ON public.users USING btree (username);
2789 -- Name: index_users_on_uuid; Type: INDEX; Schema: public; Owner: -
2792 CREATE UNIQUE INDEX index_users_on_uuid ON public.users USING btree (uuid);
2796 -- Name: index_virtual_machines_on_hostname; Type: INDEX; Schema: public; Owner: -
2799 CREATE INDEX index_virtual_machines_on_hostname ON public.virtual_machines USING btree (hostname);
2803 -- Name: index_virtual_machines_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2806 CREATE INDEX index_virtual_machines_on_modified_at_uuid ON public.virtual_machines USING btree (modified_at DESC, uuid);
2810 -- Name: index_virtual_machines_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2813 CREATE INDEX index_virtual_machines_on_owner_uuid ON public.virtual_machines USING btree (owner_uuid);
2817 -- Name: index_virtual_machines_on_uuid; Type: INDEX; Schema: public; Owner: -
2820 CREATE UNIQUE INDEX index_virtual_machines_on_uuid ON public.virtual_machines USING btree (uuid);
2824 -- Name: index_workflows_on_modified_at_uuid; Type: INDEX; Schema: public; Owner: -
2827 CREATE INDEX index_workflows_on_modified_at_uuid ON public.workflows USING btree (modified_at DESC, uuid);
2831 -- Name: index_workflows_on_owner_uuid; Type: INDEX; Schema: public; Owner: -
2834 CREATE INDEX index_workflows_on_owner_uuid ON public.workflows USING btree (owner_uuid);
2838 -- Name: index_workflows_on_uuid; Type: INDEX; Schema: public; Owner: -
2841 CREATE UNIQUE INDEX index_workflows_on_uuid ON public.workflows USING btree (uuid);
2845 -- Name: job_tasks_search_index; Type: INDEX; Schema: public; Owner: -
2848 CREATE INDEX job_tasks_search_index ON public.job_tasks USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, job_uuid, created_by_job_task_uuid);
2852 -- Name: jobs_full_text_search_idx; Type: INDEX; Schema: public; Owner: -
2855 CREATE INDEX jobs_full_text_search_idx ON public.jobs USING gin (to_tsvector('english'::regconfig, substr((((((((((((((((((((((((((((((((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(submit_id, ''::character varying))::text) || ' '::text) || (COALESCE(script, ''::character varying))::text) || ' '::text) || (COALESCE(script_version, ''::character varying))::text) || ' '::text) || COALESCE(script_parameters, ''::text)) || ' '::text) || (COALESCE(cancelled_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(cancelled_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(output, ''::character varying))::text) || ' '::text) || (COALESCE(is_locked_by_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(log, ''::character varying))::text) || ' '::text) || COALESCE(tasks_summary, ''::text)) || ' '::text) || COALESCE(runtime_constraints, ''::text)) || ' '::text) || (COALESCE(repository, ''::character varying))::text) || ' '::text) || (COALESCE(supplied_script_version, ''::character varying))::text) || ' '::text) || (COALESCE(docker_image_locator, ''::character varying))::text) || ' '::text) || (COALESCE(description, ''::character varying))::text) || ' '::text) || (COALESCE(state, ''::character varying))::text) || ' '::text) || (COALESCE(arvados_sdk_version, ''::character varying))::text) || ' '::text) || COALESCE(components, ''::text)), 0, 1000000)));
2859 -- Name: jobs_search_index; Type: INDEX; Schema: public; Owner: -
2862 CREATE INDEX jobs_search_index ON public.jobs USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, submit_id, script, script_version, cancelled_by_client_uuid, cancelled_by_user_uuid, output, is_locked_by_uuid, log, repository, supplied_script_version, docker_image_locator, state, arvados_sdk_version);
2866 -- Name: jobs_trgm_text_search_idx; Type: INDEX; Schema: public; Owner: -
2869 CREATE INDEX jobs_trgm_text_search_idx ON public.jobs USING gin (((((((((((((((((((((((((((((((((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(submit_id, ''::character varying))::text) || ' '::text) || (COALESCE(script, ''::character varying))::text) || ' '::text) || (COALESCE(script_version, ''::character varying))::text) || ' '::text) || COALESCE(script_parameters, ''::text)) || ' '::text) || (COALESCE(cancelled_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(cancelled_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(output, ''::character varying))::text) || ' '::text) || (COALESCE(is_locked_by_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(log, ''::character varying))::text) || ' '::text) || COALESCE(tasks_summary, ''::text)) || ' '::text) || COALESCE(runtime_constraints, ''::text)) || ' '::text) || (COALESCE(repository, ''::character varying))::text) || ' '::text) || (COALESCE(supplied_script_version, ''::character varying))::text) || ' '::text) || (COALESCE(docker_image_locator, ''::character varying))::text) || ' '::text) || (COALESCE(description, ''::character varying))::text) || ' '::text) || (COALESCE(state, ''::character varying))::text) || ' '::text) || (COALESCE(arvados_sdk_version, ''::character varying))::text) || ' '::text) || COALESCE(components, ''::text))) public.gin_trgm_ops);
2873 -- Name: keep_disks_search_index; Type: INDEX; Schema: public; Owner: -
2876 CREATE INDEX keep_disks_search_index ON public.keep_disks USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, ping_secret, node_uuid, filesystem_uuid, keep_service_uuid);
2880 -- Name: keep_services_search_index; Type: INDEX; Schema: public; Owner: -
2883 CREATE INDEX keep_services_search_index ON public.keep_services USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, service_host, service_type);
2887 -- Name: links_index_on_properties; Type: INDEX; Schema: public; Owner: -
2890 CREATE INDEX links_index_on_properties ON public.links USING gin (properties);
2894 -- Name: links_search_index; Type: INDEX; Schema: public; Owner: -
2897 CREATE INDEX links_search_index ON public.links USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, tail_uuid, link_class, name, head_uuid);
2901 -- Name: links_tail_name_unique_if_link_class_name; Type: INDEX; Schema: public; Owner: -
2904 CREATE UNIQUE INDEX links_tail_name_unique_if_link_class_name ON public.links USING btree (tail_uuid, name) WHERE ((link_class)::text = 'name'::text);
2908 -- Name: logs_search_index; Type: INDEX; Schema: public; Owner: -
2911 CREATE INDEX logs_search_index ON public.logs USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, object_uuid, event_type, object_owner_uuid);
2915 -- Name: nodes_index_on_info; Type: INDEX; Schema: public; Owner: -
2918 CREATE INDEX nodes_index_on_info ON public.nodes USING gin (info);
2922 -- Name: nodes_index_on_properties; Type: INDEX; Schema: public; Owner: -
2925 CREATE INDEX nodes_index_on_properties ON public.nodes USING gin (properties);
2929 -- Name: nodes_search_index; Type: INDEX; Schema: public; Owner: -
2932 CREATE INDEX nodes_search_index ON public.nodes USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, hostname, domain, ip_address, job_uuid);
2936 -- Name: permission_target; Type: INDEX; Schema: public; Owner: -
2939 CREATE INDEX permission_target ON public.materialized_permissions USING btree (target_uuid);
2943 -- Name: permission_user_target; Type: INDEX; Schema: public; Owner: -
2946 CREATE UNIQUE INDEX permission_user_target ON public.materialized_permissions USING btree (user_uuid, target_uuid);
2950 -- Name: pipeline_instances_full_text_search_idx; Type: INDEX; Schema: public; Owner: -
2953 CREATE INDEX pipeline_instances_full_text_search_idx ON public.pipeline_instances USING gin (to_tsvector('english'::regconfig, substr((((((((((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(pipeline_template_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || COALESCE(components, ''::text)) || ' '::text) || COALESCE(properties, ''::text)) || ' '::text) || (COALESCE(state, ''::character varying))::text) || ' '::text) || COALESCE(components_summary, ''::text)) || ' '::text) || (COALESCE(description, ''::character varying))::text), 0, 1000000)));
2957 -- Name: pipeline_instances_search_index; Type: INDEX; Schema: public; Owner: -
2960 CREATE INDEX pipeline_instances_search_index ON public.pipeline_instances USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, pipeline_template_uuid, name, state);
2964 -- Name: pipeline_instances_trgm_text_search_idx; Type: INDEX; Schema: public; Owner: -
2967 CREATE INDEX pipeline_instances_trgm_text_search_idx ON public.pipeline_instances USING gin (((((((((((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(pipeline_template_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || COALESCE(components, ''::text)) || ' '::text) || COALESCE(properties, ''::text)) || ' '::text) || (COALESCE(state, ''::character varying))::text) || ' '::text) || COALESCE(components_summary, ''::text)) || ' '::text) || (COALESCE(description, ''::character varying))::text)) public.gin_trgm_ops);
2971 -- Name: pipeline_template_owner_uuid_name_unique; Type: INDEX; Schema: public; Owner: -
2974 CREATE UNIQUE INDEX pipeline_template_owner_uuid_name_unique ON public.pipeline_templates USING btree (owner_uuid, name);
2978 -- Name: pipeline_templates_full_text_search_idx; Type: INDEX; Schema: public; Owner: -
2981 CREATE INDEX pipeline_templates_full_text_search_idx ON public.pipeline_templates USING gin (to_tsvector('english'::regconfig, substr((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || COALESCE(components, ''::text)) || ' '::text) || (COALESCE(description, ''::character varying))::text), 0, 1000000)));
2985 -- Name: pipeline_templates_search_index; Type: INDEX; Schema: public; Owner: -
2988 CREATE INDEX pipeline_templates_search_index ON public.pipeline_templates USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, name);
2992 -- Name: pipeline_templates_trgm_text_search_idx; Type: INDEX; Schema: public; Owner: -
2995 CREATE INDEX pipeline_templates_trgm_text_search_idx ON public.pipeline_templates USING gin (((((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || COALESCE(components, ''::text)) || ' '::text) || (COALESCE(description, ''::character varying))::text)) public.gin_trgm_ops);
2999 -- Name: repositories_search_index; Type: INDEX; Schema: public; Owner: -
3002 CREATE INDEX repositories_search_index ON public.repositories USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, name);
3006 -- Name: specimens_search_index; Type: INDEX; Schema: public; Owner: -
3009 CREATE INDEX specimens_search_index ON public.specimens USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, material);
3013 -- Name: traits_search_index; Type: INDEX; Schema: public; Owner: -
3016 CREATE INDEX traits_search_index ON public.traits USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, name);
3020 -- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -
3023 CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version);
3027 -- Name: users_search_index; Type: INDEX; Schema: public; Owner: -
3030 CREATE INDEX users_search_index ON public.users USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, email, first_name, last_name, identity_url, default_owner_uuid, username, redirect_to_user_uuid);
3034 -- Name: virtual_machines_search_index; Type: INDEX; Schema: public; Owner: -
3037 CREATE INDEX virtual_machines_search_index ON public.virtual_machines USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, hostname);
3041 -- Name: workflows_full_text_search_idx; Type: INDEX; Schema: public; Owner: -
3044 CREATE INDEX workflows_full_text_search_idx ON public.workflows USING gin (to_tsvector('english'::regconfig, substr((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || COALESCE(description, ''::text)), 0, 1000000)));
3048 -- Name: workflows_search_idx; Type: INDEX; Schema: public; Owner: -
3051 CREATE INDEX workflows_search_idx ON public.workflows USING btree (uuid, owner_uuid, modified_by_client_uuid, modified_by_user_uuid, name);
3055 -- Name: workflows_trgm_text_search_idx; Type: INDEX; Schema: public; Owner: -
3058 CREATE INDEX workflows_trgm_text_search_idx ON public.workflows USING gin (((((((((((((COALESCE(uuid, ''::character varying))::text || ' '::text) || (COALESCE(owner_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_client_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(modified_by_user_uuid, ''::character varying))::text) || ' '::text) || (COALESCE(name, ''::character varying))::text) || ' '::text) || COALESCE(description, ''::text))) public.gin_trgm_ops);
3062 -- PostgreSQL database dump complete
3065 SET search_path TO "$user", public;
3067 INSERT INTO "schema_migrations" (version) VALUES