2021-03-08 16:01:00 +00:00
|
|
|
module Rep : sig
|
2021-07-05 12:45:08 +00:00
|
|
|
type untyped_id
|
|
|
|
type 'a id
|
2021-03-08 16:01:00 +00:00
|
|
|
type file = {
|
|
|
|
filepath : Fpath.t;
|
|
|
|
localpath : Fpath.t;
|
|
|
|
sha256 : Cstruct.t;
|
|
|
|
size : int;
|
|
|
|
}
|
|
|
|
|
2021-07-05 12:45:08 +00:00
|
|
|
val untyped_id : untyped_id Caqti_type.t
|
|
|
|
val id : 'a -> 'a id Caqti_type.t
|
2021-03-08 16:01:00 +00:00
|
|
|
val uuid : Uuidm.t Caqti_type.t
|
|
|
|
val ptime : Ptime.t Caqti_type.t
|
|
|
|
val fpath : Fpath.t Caqti_type.t
|
|
|
|
val cstruct : Cstruct.t Caqti_type.t
|
|
|
|
val file : file Caqti_type.t
|
|
|
|
val execution_result : Builder.execution_result Caqti_type.t
|
|
|
|
val console : (int * string) list Caqti_type.t
|
|
|
|
end
|
2021-07-05 12:45:08 +00:00
|
|
|
type 'a id = 'a Rep.id
|
2021-01-08 12:47:17 +00:00
|
|
|
|
2021-03-08 16:01:00 +00:00
|
|
|
type file = Rep.file = {
|
2021-01-08 12:47:17 +00:00
|
|
|
filepath : Fpath.t;
|
|
|
|
localpath : Fpath.t;
|
|
|
|
sha256 : Cstruct.t;
|
2021-02-25 14:27:45 +00:00
|
|
|
size : int;
|
2021-01-08 12:47:17 +00:00
|
|
|
}
|
|
|
|
|
2021-01-27 20:25:51 +00:00
|
|
|
val application_id : int32
|
|
|
|
|
|
|
|
val current_version : int64
|
|
|
|
|
|
|
|
val get_application_id :
|
|
|
|
(unit, int32, [< `Many | `One | `Zero > `One ]) Caqti_request.t
|
|
|
|
|
|
|
|
val set_application_id :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
|
|
|
|
val get_version :
|
|
|
|
(unit, int64, [< `Many | `One | `Zero > `One ]) Caqti_request.t
|
|
|
|
|
|
|
|
val set_current_version :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
|
2021-01-08 12:47:17 +00:00
|
|
|
val last_insert_rowid :
|
2021-07-05 12:45:08 +00:00
|
|
|
(unit, 'a id, [< `Many | `One | `Zero > `One ]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
|
|
|
|
module Job : sig
|
|
|
|
val migrate :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val rollback :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
|
|
|
|
val get :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`job] id, string, [< `Many | `One | `Zero > `One ])
|
2021-01-08 12:47:17 +00:00
|
|
|
Caqti_request.t
|
|
|
|
val get_id_by_name :
|
2021-07-05 12:45:08 +00:00
|
|
|
(string, [`job] id, [< `Many | `One | `Zero > `One `Zero ]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
val get_all :
|
2021-07-05 12:45:08 +00:00
|
|
|
(unit, [`job] id * string, [ `Many | `One | `Zero ]) Caqti_request.t
|
2021-06-29 14:59:08 +00:00
|
|
|
val get_all_with_section_synopsis :
|
2021-07-05 12:45:08 +00:00
|
|
|
(unit, [`job] id * string * string option * string option, [ `Many | `One | `Zero ]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
val try_add :
|
|
|
|
(string, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val remove :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`job] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
end
|
|
|
|
|
2021-06-29 14:59:08 +00:00
|
|
|
module Tag : sig
|
|
|
|
val migrate :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val rollback :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val get :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`tag] id, string, [< `Many | `One | `Zero > `One ]) Caqti_request.t
|
2021-06-29 14:59:08 +00:00
|
|
|
val get_id_by_name :
|
2021-07-05 12:45:08 +00:00
|
|
|
(string, [`tag] id, [< `Many | `One | `Zero > `One ]) Caqti_request.t
|
2021-06-29 14:59:08 +00:00
|
|
|
val try_add :
|
|
|
|
(string, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
end
|
|
|
|
|
|
|
|
module Job_tag : sig
|
|
|
|
val migrate :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val rollback :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val add :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`tag] id * string * [`job] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-06-30 10:55:00 +00:00
|
|
|
val update :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`tag] id * string * [`job] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-06-29 14:59:08 +00:00
|
|
|
val get_value :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`tag] id * [`job] id, string, [< `Many | `One | `Zero > `Zero `One ]) Caqti_request.t
|
2021-06-29 14:59:08 +00:00
|
|
|
end
|
|
|
|
|
2021-01-08 12:47:17 +00:00
|
|
|
module Build_artifact : sig
|
|
|
|
val migrate :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val rollback :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
|
2021-09-08 09:10:30 +00:00
|
|
|
val get : ([`build_artifact] id, file, [< `Many | `One | `Zero > `One]) Caqti_request.t
|
2021-01-27 20:25:51 +00:00
|
|
|
val get_by_build :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`build] id * Fpath.t, [`build_artifact] id * file,
|
2021-01-27 20:25:51 +00:00
|
|
|
[< `Many | `One | `Zero > `One ]) Caqti_request.t
|
|
|
|
|
2021-01-08 12:47:17 +00:00
|
|
|
val get_by_build_uuid :
|
2021-07-05 12:45:08 +00:00
|
|
|
(Uuidm.t * Fpath.t, [`build_artifact] id * file,
|
2021-01-08 12:47:17 +00:00
|
|
|
[< `Many | `One | `Zero > `One `Zero ])
|
|
|
|
Caqti_request.t
|
|
|
|
val get_all_by_build :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`build] id, [`build_artifact] id * file, [ `Many | `One | `Zero ]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
val add :
|
2021-07-05 12:45:08 +00:00
|
|
|
(file * [`build] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
val remove_by_build :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`build] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-06-25 12:01:20 +00:00
|
|
|
val remove :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`build_artifact] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
module Build :
|
|
|
|
sig
|
|
|
|
type t = {
|
|
|
|
uuid : Uuidm.t;
|
|
|
|
start : Ptime.t;
|
|
|
|
finish : Ptime.t;
|
|
|
|
result : Builder.execution_result;
|
2021-08-31 11:59:45 +00:00
|
|
|
console : Fpath.t;
|
|
|
|
script : Fpath.t;
|
2021-07-05 12:45:08 +00:00
|
|
|
main_binary : [`build_artifact] id option;
|
2021-07-08 11:33:27 +00:00
|
|
|
input_id : Cstruct.t option;
|
2021-07-05 12:45:08 +00:00
|
|
|
user_id : [`user] id;
|
|
|
|
job_id : [`job] id;
|
2021-01-08 12:47:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
val migrate :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val rollback :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
|
|
|
|
val get_opt :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`build] id, t, [< `Many | `One | `Zero > `One `Zero ]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
val get_by_uuid :
|
2021-07-05 12:45:08 +00:00
|
|
|
(Uuidm.t, [`build] id * t, [< `Many | `One | `Zero > `One `Zero ])
|
2021-01-08 12:47:17 +00:00
|
|
|
Caqti_request.t
|
|
|
|
val get_all :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`job] id, [`build] id * t, [ `Many | `One | `Zero ]) Caqti_request.t
|
2021-08-31 11:59:45 +00:00
|
|
|
val get_all_with_main_binary :
|
|
|
|
([`job] id, [`build] id * t * file option, [ `Many | `One | `Zero ]) Caqti_request.t
|
2021-07-08 11:33:27 +00:00
|
|
|
val get_all_artifact_sha :
|
|
|
|
([`job] id, Cstruct.t, [ `Many | `One | `Zero ]) Caqti_request.t
|
2021-01-29 13:34:56 +00:00
|
|
|
val get_latest :
|
2021-08-31 11:59:45 +00:00
|
|
|
([`job] id, [`build] id * t * file option, [< `Many | `One | `Zero > `One `Zero ])
|
2021-01-29 13:34:56 +00:00
|
|
|
Caqti_request.t
|
2021-07-08 11:33:27 +00:00
|
|
|
val get_latest_failed :
|
2021-08-31 11:59:45 +00:00
|
|
|
([`job] id, t, [< `Many | `One | `Zero > `One `Zero ]) Caqti_request.t
|
2021-04-23 13:00:12 +00:00
|
|
|
val get_latest_uuid :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`job] id, [`build] id * Uuidm.t, [< `Many | `One | `Zero > `One `Zero ])
|
2021-04-23 13:00:12 +00:00
|
|
|
Caqti_request.t
|
2021-06-02 12:23:40 +00:00
|
|
|
val get_latest_successful_uuid :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`job] id, Uuidm.t, [< `Many | `One | `Zero > `One `Zero ])
|
2021-06-02 12:23:40 +00:00
|
|
|
Caqti_request.t
|
2021-06-02 13:05:10 +00:00
|
|
|
val get_previous_successful :
|
2021-08-31 11:59:45 +00:00
|
|
|
([`build] id, [`build] id * t, [< `Many | `One | `Zero > `One `Zero ])
|
2021-04-23 10:06:39 +00:00
|
|
|
Caqti_request.t
|
2021-07-08 11:33:27 +00:00
|
|
|
val get_same_input_same_output_builds :
|
2021-08-31 11:59:45 +00:00
|
|
|
([`build] id, t, [ `Many | `One | `Zero ]) Caqti_request.t
|
2021-07-08 11:33:27 +00:00
|
|
|
val get_same_input_different_output_hashes :
|
|
|
|
([`build] id, Cstruct.t, [ `Many | `One | `Zero ]) Caqti_request.t
|
|
|
|
val get_different_input_same_output_input_ids :
|
|
|
|
([`build] id, Cstruct.t, [ `Many | `One | `Zero ]) Caqti_request.t
|
|
|
|
val get_one_by_input_id :
|
2021-08-31 11:59:45 +00:00
|
|
|
(Cstruct.t, t, [< `Many | `One | `Zero > `One ]) Caqti_request.t
|
2021-07-08 11:33:27 +00:00
|
|
|
val add : (t, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-02-02 08:34:21 +00:00
|
|
|
val get_by_hash :
|
2021-08-31 11:59:45 +00:00
|
|
|
(Cstruct.t, t, [< `Many | `One | `Zero > `One]) Caqti_request.t
|
|
|
|
val get_with_main_binary_by_hash :
|
|
|
|
(Cstruct.t, t * file option, [< `Many | `One | `Zero > `One]) Caqti_request.t
|
|
|
|
val get_with_jobname_by_hash :
|
2021-02-02 08:34:21 +00:00
|
|
|
(Cstruct.t, string * t, [< `Many | `One | `Zero > `One `Zero]) Caqti_request.t
|
2021-07-05 12:45:08 +00:00
|
|
|
val set_main_binary : ([`build] id * [`build_artifact] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val remove : ([`build] id, unit, [< `Many | `One | `Zero > `Zero]) Caqti_request.t
|
2021-01-08 12:47:17 +00:00
|
|
|
end
|
|
|
|
|
2021-01-20 21:50:35 +00:00
|
|
|
module User : sig
|
|
|
|
val migrate :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val rollback :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val get_user :
|
2021-07-05 12:45:08 +00:00
|
|
|
(string, [`user] id * Builder_web_auth.scrypt Builder_web_auth.user_info,
|
2021-01-20 21:50:35 +00:00
|
|
|
[< `Many | `One | `Zero > `One `Zero ])
|
|
|
|
Caqti_request.t
|
|
|
|
val get_all :
|
|
|
|
(unit, string, [ `Many | `One | `Zero ]) Caqti_request.t
|
|
|
|
val add :
|
2021-02-23 15:20:18 +00:00
|
|
|
(Builder_web_auth.scrypt Builder_web_auth.user_info, unit, [< `Many | `One | `Zero > `Zero ])
|
2021-01-20 21:50:35 +00:00
|
|
|
Caqti_request.t
|
2021-07-05 12:45:08 +00:00
|
|
|
val remove : ([`user] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-01-20 21:50:35 +00:00
|
|
|
val remove_user :
|
|
|
|
(string, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val update_user :
|
2021-02-23 15:20:18 +00:00
|
|
|
(Builder_web_auth.scrypt Builder_web_auth.user_info, unit, [< `Many | `One | `Zero > `Zero ])
|
2021-01-20 21:50:35 +00:00
|
|
|
Caqti_request.t
|
|
|
|
end
|
|
|
|
|
2021-06-08 14:54:23 +00:00
|
|
|
module Access_list : sig
|
|
|
|
val migrate :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val rollback :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
val get :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`user] id * [`job] id, [`access_list] id, [< `Many | `One | `Zero > `One ]) Caqti_request.t
|
2021-06-08 14:54:23 +00:00
|
|
|
val add :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`user] id * [`job] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-06-08 14:54:23 +00:00
|
|
|
val remove :
|
2021-07-05 12:45:08 +00:00
|
|
|
([`user] id * [`job] id, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
2021-06-08 14:54:23 +00:00
|
|
|
val remove_all_by_username :
|
|
|
|
(string, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t
|
|
|
|
end
|
|
|
|
|
2021-01-08 12:47:17 +00:00
|
|
|
val migrate :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t list
|
|
|
|
val rollback :
|
|
|
|
(unit, unit, [< `Many | `One | `Zero > `Zero ]) Caqti_request.t list
|