From 0b608f7f9492a026c7bb990a508b7d93253d91fd Mon Sep 17 00:00:00 2001
From: taylordowns2000 Registry process to query and maintain a list of adaptors available for
writing jobs. Currently it queries NPM for all modules in the Usage Caching By default the results are cached to disk, and will be reused every start. In order to disable or configure caching pass see: The process uses Caching By default the results are cached to disk, and will be reused every start. In order to disable or configure caching pass see: The process uses Timeouts There is a 'general' timeout of 30s, this is used for GenServer calls like
Destructures an NPM style package name into module name and version. Example Destructures an NPM style package name into module name and version. Example The OpenFn CLI returns JSON formatted log lines, which are decoded and added
-to a There are two kinds of output: These are usually for general logging, and debugging. The above is the equivalent of the output of a commandapply_user_email(user, password, attrs)
Examples
-
+iex> apply_user_email(user, "valid password", %{email: ...})
-{:ok, %User{}}role: :superuser
-iex> apply_user_email(user, "invalid password", %{email: ...})
-{:error, %Ecto.Changeset{}}
iex> apply_user_email(user, "valid password", %{email: ...})
+{:ok, %User{}}role: :superuser
+iex> apply_user_email(user, "invalid password", %{email: ...})
+{:error, %Ecto.Changeset{}}
change_scheduled_deletion(user, attrs \\ %{
Examples
-
+iex> change_scheduled_deletion(user)
-%Ecto.Changeset{data: %User{}}
iex> change_scheduled_deletion(user)
+%Ecto.Changeset{data: %User{}}
change_superuser_registration(attrs \\ %{})
Examples
-
+iex> change_superuser_registration(user)
-%Ecto.Changeset{data: %User{}}
iex> change_superuser_registration(user)
+%Ecto.Changeset{data: %User{}}
change_user_email(user, attrs \\ %{})
Examples
-
+iex> change_user_email(user)
-%Ecto.Changeset{data: %User{}}
iex> change_user_email(user)
+%Ecto.Changeset{data: %User{}}
change_user_password(user, attrs \\ %{})
Examples
-
+iex> change_user_password(user)
-%Ecto.Changeset{data: %User{}}
iex> change_user_password(user)
+%Ecto.Changeset{data: %User{}}
change_user_registration(attrs \\ %{})
Examples
-
+iex> change_user_registration(user)
-%Ecto.Changeset{data: %User{}}
iex> change_user_registration(user)
+%Ecto.Changeset{data: %User{}}
delete_token(token)
Examples
-iex> delete_token(token)
-{:ok, %UserToken{}}
+
+iex> delete_token(token)
+{:error, %Ecto.Changeset{}}iex> delete_token(token)
+{:ok, %UserToken{}}
-iex> delete_token(token)
-{:error, %Ecto.Changeset{}}
delete_user(user)
Examples
-iex> delete_user(user)
-{:ok, %User{}}
+
+iex> delete_user(user)
+{:error, %Ecto.Changeset{}}iex> delete_user(user)
+{:ok, %User{}}
-iex> delete_user(user)
-{:error, %Ecto.Changeset{}}
deliver_update_email_instructions(user, cur
Examples
-
+iex> deliver_update_email_instructions(user, current_email, &Routes.user_update_email_url(conn, :edit, &1))
-{:ok, %{to: ..., body: ...}}
iex> deliver_update_email_instructions(user, current_email, &Routes.user_update_email_url(conn, :edit, &1))
+{:ok, %{to: ..., body: ...}}
deliver_user_confirmation_instructions(user
Examples
-
iex> deliver_user_confirmation_instructions(user, &Routes.user_confirmation_url(conn, :edit, &1))
-{:ok, %{to: ..., body: ...}}
+
+iex> deliver_user_confirmation_instructions(confirmed_user, &Routes.user_confirmation_url(conn, :edit, &1))
+{:error, :already_confirmed}iex> deliver_user_confirmation_instructions(user, &Routes.user_confirmation_url(conn, :edit, &1))
+{:ok, %{to: ..., body: ...}}
-iex> deliver_user_confirmation_instructions(confirmed_user, &Routes.user_confirmation_url(conn, :edit, &1))
-{:error, :already_confirmed}
deliver_user_reset_password_instructions(us
Examples
-
+iex> deliver_user_reset_password_instructions(user, &Routes.user_reset_password_url(conn, :edit, &1))
-{:ok, %{to: ..., body: ...}}
iex> deliver_user_reset_password_instructions(user, &Routes.user_reset_password_url(conn, :edit, &1))
+{:ok, %{to: ..., body: ...}}
get_token!(id)
Examples
-iex> get_token!(123)
-%UserToken{}
+
iex> get_token!(123)
+%UserToken{}
-iex> get_token!(456)
+iex> get_token!(456)
** (Ecto.NoResultsError)
get_user!(id)
Examples
-iex> get_user!(123)
-%User{}
+
@@ -1348,10 +1348,10 @@ iex> get_user!(123)
+%User{}
-iex> get_user!(456)
+iex> get_user!(456)
** (Ecto.NoResultsError)
get_user_by_email(email)
Examples
-iex> get_user_by_email("foo@example.com")
-%User{}
+
@@ -1380,10 +1380,10 @@ iex> get_user_by_email("foo@example.com")
+%User{}
-iex> get_user_by_email("unknown@example.com")
+iex> get_user_by_email("unknown@example.com")
nil
get_user_by_email_and_password(email, passw
Examples
-
iex> get_user_by_email_and_password("foo@example.com", "correct_password")
-%User{}
+
@@ -1412,10 +1412,10 @@ iex> get_user_by_email_and_password("foo@example.com", "correct_password")
+%User{}
-iex> get_user_by_email_and_password("foo@example.com", "invalid_password")
+iex> get_user_by_email_and_password("foo@example.com", "invalid_password")
nil
get_user_by_reset_password_token(token)
Examples
-iex> get_user_by_reset_password_token("validtoken")
-%User{}
+
@@ -1583,8 +1583,8 @@ iex> get_user_by_reset_password_token("validtoken")
+%User{}
-iex> get_user_by_reset_password_token("invalidtoken")
+iex> get_user_by_reset_password_token("invalidtoken")
nil
list_users()
Examples
-
+iex> list_users()
-[%User{}, ...]
iex> list_users()
+[%User{}, ...]
register_superuser(attrs)
Examples
-iex> register_superuser(%{field: value})
-{:ok, %User{}}
+
+iex> register_superuser(%{field: bad_value})
+{:error, %Ecto.Changeset{}}iex> register_superuser(%{field: value})
+{:ok, %User{}}
-iex> register_superuser(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
register_user(attrs)
Examples
-iex> register_user(%{field: value})
-{:ok, %User{}}
+
+iex> register_user(%{field: bad_value})
+{:error, %Ecto.Changeset{}}iex> register_user(%{field: value})
+{:ok, %User{}}
-iex> register_user(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
reset_user_password(user, attrs)
Examples
-iex> reset_user_password(user, %{password: "new long password", password_confirmation: "new long password"})
-{:ok, %User{}}
+
+iex> reset_user_password(user, %{password: "valid", password_confirmation: "not the same"})
+{:error, %Ecto.Changeset{}}iex> reset_user_password(user, %{password: "new long password", password_confirmation: "new long password"})
+{:ok, %User{}}
-iex> reset_user_password(user, %{password: "valid", password_confirmation: "not the same"})
-{:error, %Ecto.Changeset{}}
update_user_password(user, password, attrs)
Examples
-
iex> update_user_password(user, "valid password", %{password: ...})
-{:ok, %User{}}
+
+iex> update_user_password(user, "invalid password", %{password: ...})
+{:error, %Ecto.Changeset{}}iex> update_user_password(user, "valid password", %{password: ...})
+{:ok, %User{}}
-iex> update_user_password(user, "invalid password", %{password: ...})
-{:error, %Ecto.Changeset{}}
request(request)
Examples
-request = %HTTPoison.Request{
+
+request(request)request = %HTTPoison.Request{
method: :post,
url: "https://my.website.com",
body: "{\"foo\": 3}",
- headers: [{"Accept", "application/json"}]
-}
+ headers: [{"Accept", "application/json"}]
+}
-request(request)
request(method, url, body \\ "",
Examples
-
+request(:post, "https://my.website.com", "{\"foo\": 3}", [{"Accept", "application/json"}])
request(:post, "https://my.website.com", "{\"foo\": 3}", [{"Accept", "application/json"}])
@openfn
organization and
filters out modules that are known not to be adaptors.# Starting the process
-AdaptorRegistry.start_link()
+AdaptorRegistry.start_link()
# Getting a list of all adaptors
-Lightning.AdaptorRegistry.AdaptorRegistry.all()
start_link/1
.:continue
to return before the adaptors have been queried.
+start_link/1
.:continue
to return before the adaptors have been queried.
This does mean that the first call to the process will be delayed until
the handle_continue/2
has finished.all/1
and also internally when the modules are being queried. NPM can
@@ -411,10 +411,10 @@ resolve_package_name(package_name)
-
+iex> resolve_package_name("@openfn/language-salesforce@1.2.3")
-{ "@openfn/language-salesforce", "1.2.3" }
-iex> resolve_package_name("@openfn/language-salesforce")
-{ "@openfn/language-salesforce", nil }
iex> resolve_package_name("@openfn/language-salesforce@1.2.3")
+{ "@openfn/language-salesforce", "1.2.3" }
+iex> resolve_package_name("@openfn/language-salesforce")
+{ "@openfn/language-salesforce", nil }
create_attempt(work_order, job, reason)
Examples
-iex> create_attempt(%{field: value})
-{:ok, %Attempt{}}
+
+iex> create_attempt(%{field: bad_value})
+{:error, %Ecto.Changeset{}}iex> create_attempt(%{field: value})
+{:ok, %Attempt{}}
-iex> create_attempt(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
request(request)
Examples
-request = %HTTPoison.Request{
+
+request(request)request = %HTTPoison.Request{
method: :post,
url: "https://my.website.com",
body: "{\"foo\": 3}",
- headers: [{"Accept", "application/json"}]
-}
+ headers: [{"Accept", "application/json"}]
+}
-request(request)
request(method, url, body \\ "",
Examples
-
+request(:post, "https://my.website.com", "{\"foo\": 3}", [{"Accept", "application/json"}])
request(:post, "https://my.website.com", "{\"foo\": 3}", [{"Accept", "application/json"}])
Logs
Result
struct.{"level":"<<level>>","name":"<<module>>","message":"..."],"time":<<timestamp>>}
{"message":["<<message|filepath|output>>"]}
Result
struct.
There are two kinds of output:
{"level":"<<level>>","name":"<<module>>","message":"..."],"time":<<timestamp>>}
These are usually for general logging, and debugging.
{"message":["<<message|filepath|output>>"]}
The above is the equivalent of the output of a command
diff --git a/Lightning.Credentials.html b/Lightning.Credentials.html index 6726dbbbd1..444d232a03 100644 --- a/Lightning.Credentials.html +++ b/Lightning.Credentials.html @@ -277,8 +277,8 @@iex> change_credential(credential)
-%Ecto.Changeset{data: %Credential{}}
+iex> change_credential(credential)
+%Ecto.Changeset{data: %Credential{}}
iex> create_credential(%{field: value})
-{:ok, %Credential{}}
+iex> create_credential(%{field: value})
+{:ok, %Credential{}}
-iex> create_credential(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> create_credential(%{field: bad_value})
+{:error, %Ecto.Changeset{}}
iex> delete_credential(credential)
-{:ok, %Credential{}}
+iex> delete_credential(credential)
+{:ok, %Credential{}}
-iex> delete_credential(credential)
-{:error, %Ecto.Changeset{}}
+iex> delete_credential(credential)
+{:error, %Ecto.Changeset{}}
iex> get_credential!(123)
-%Credential{}
+iex> get_credential!(123)
+%Credential{}
-iex> get_credential!(456)
+iex> get_credential!(456)
** (Ecto.NoResultsError)
iex> can_credential_be_shared_to_user(credential_id, user_id)
-[]
+iex> can_credential_be_shared_to_user(credential_id, user_id)
+[]
-iex> can_credential_be_shared_to_user(credential_id, user_id)
-["52ea8758-6ce5-43d7-912f-6a1e1f11dc55"]
+iex> can_credential_be_shared_to_user(credential_id, user_id)
+["52ea8758-6ce5-43d7-912f-6a1e1f11dc55"]
iex> list_credentials()
-[%Credential{}, ...]
+iex> list_credentials()
+[%Credential{}, ...]
iex> list_credentials_for_user(123)
-[%Credential{user_id: 123}, %Credential{user_id: 123},...]
+iex> list_credentials_for_user(123)
+[%Credential{user_id: 123}, %Credential{user_id: 123},...]
iex> update_credential(credential, %{field: new_value})
-{:ok, %Credential{}}
+iex> update_credential(credential, %{field: new_value})
+{:ok, %Credential{}}
-iex> update_credential(credential, %{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> update_credential(credential, %{field: bad_value})
+{:error, %Ecto.Changeset{}}
iex> change_dataclip(dataclip)
-%Ecto.Changeset{data: %Dataclip{}}
+iex> change_dataclip(dataclip)
+%Ecto.Changeset{data: %Dataclip{}}
iex> change_run(run)
-%Ecto.Changeset{data: %Run{}}
+iex> change_run(run)
+%Ecto.Changeset{data: %Run{}}
iex> create_dataclip(%{field: value})
-{:ok, %Dataclip{}}
+iex> create_dataclip(%{field: value})
+{:ok, %Dataclip{}}
-iex> create_dataclip(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> create_dataclip(%{field: bad_value})
+{:error, %Ecto.Changeset{}}
iex> create_run(%{field: value})
-{:ok, %Run{}}
+iex> create_run(%{field: value})
+{:ok, %Run{}}
-iex> create_run(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> create_run(%{field: bad_value})
+{:error, %Ecto.Changeset{}}
iex> delete_dataclip(dataclip)
-{:ok, %Dataclip{}}
+iex> delete_dataclip(dataclip)
+{:ok, %Dataclip{}}
-iex> delete_dataclip(dataclip)
-{:error, %Ecto.Changeset{}}
+iex> delete_dataclip(dataclip)
+{:error, %Ecto.Changeset{}}
iex> delete_run(run)
-{:ok, %Run{}}
+iex> delete_run(run)
+{:ok, %Run{}}
-iex> delete_run(run)
-{:error, %Ecto.Changeset{}}
+iex> delete_run(run)
+{:error, %Ecto.Changeset{}}
iex> get_dataclip("27b73932-16c7-4a72-86a3-85d805ccff98")
-%Dataclip{}
+iex> get_dataclip("27b73932-16c7-4a72-86a3-85d805ccff98")
+%Dataclip{}
-iex> get_dataclip("27b73932-16c7-4a72-86a3-85d805ccff98")
+iex> get_dataclip("27b73932-16c7-4a72-86a3-85d805ccff98")
nil
-iex> get_dataclip(%Run{id: "a uuid"})
-%Dataclip{}
+iex> get_dataclip(%Run{id: "a uuid"})
+%Dataclip{}
iex> get_dataclip!(123)
-%Dataclip{}
+iex> get_dataclip!(123)
+%Dataclip{}
-iex> get_dataclip!(456)
+iex> get_dataclip!(456)
** (Ecto.NoResultsError)
iex> get_run!(123)
-%Run{}
+iex> get_run!(123)
+%Run{}
-iex> get_run!(456)
+iex> get_run!(456)
** (Ecto.NoResultsError)
@@ -1064,8 +1064,8 @@ list_dataclips()
Examples
-iex> list_dataclips()
-[%Dataclip{}, ...]
+iex> list_dataclips()
+[%Dataclip{}, ...]
@@ -1174,8 +1174,8 @@ list_runs()
Examples
-iex> list_runs()
-[%Run{}, ...]
+iex> list_runs()
+[%Run{}, ...]
@@ -1330,11 +1330,11 @@ update_dataclip(dataclip, attrs)
Examples
-iex> update_dataclip(dataclip, %{field: new_value})
-{:ok, %Dataclip{}}
+iex> update_dataclip(dataclip, %{field: new_value})
+{:ok, %Dataclip{}}
-iex> update_dataclip(dataclip, %{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> update_dataclip(dataclip, %{field: bad_value})
+{:error, %Ecto.Changeset{}}
@@ -1362,11 +1362,11 @@ update_run(run, attrs)
Examples
-iex> update_run(run, %{field: new_value})
-{:ok, %Run{}}
+iex> update_run(run, %{field: new_value})
+{:ok, %Run{}}
-iex> update_run(run, %{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> update_run(run, %{field: bad_value})
+{:error, %Ecto.Changeset{}}
diff --git a/Lightning.InvocationReasons.html b/Lightning.InvocationReasons.html
index 0b345855ec..b1cbc35e09 100644
--- a/Lightning.InvocationReasons.html
+++ b/Lightning.InvocationReasons.html
@@ -273,11 +273,11 @@ create_reason(attrs \\ %{})
Examples
-iex> create_reason(%{field: value})
-{:ok, %InvocationReason{}}
+iex> create_reason(%{field: value})
+{:ok, %InvocationReason{}}
-iex> create_reason(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> create_reason(%{field: bad_value})
+{:error, %Ecto.Changeset{}}
diff --git a/Lightning.Jobs.Job.html b/Lightning.Jobs.Job.html
index 8318f96a1c..c658296b3b 100644
--- a/Lightning.Jobs.Job.html
+++ b/Lightning.Jobs.Job.html
@@ -336,17 +336,17 @@ put_workflow(changeset, workflow)
Attaches a workflow to a job, this is useful when you have an unpersisted
Workflow changeset - and want it to be created at the same time as a Job.
Example:
workflow =
- Ecto.Changeset.cast(
- %Lightning.Workflows.Workflow{},
- %{ "project_id" => attrs[:project_id], "id" => Ecto.UUID.generate() },
- [:project_id, :id]
- )
+ Ecto.Changeset.cast(
+ %Lightning.Workflows.Workflow{},
+ %{ "project_id" => attrs[:project_id], "id" => Ecto.UUID.generate() },
+ [:project_id, :id]
+ )
job =
- %Job{}
- |> Ecto.Changeset.change()
- |> Job.put_workflow(workflow)
- |> Job.changeset(attrs)
+ %Job{}
+ |> Ecto.Changeset.change()
+ |> Job.put_workflow(workflow)
+ |> Job.changeset(attrs)
iex> change_job(job)
-%Ecto.Changeset{data: %Job{}}
+iex> change_job(job)
+%Ecto.Changeset{data: %Job{}}
iex> create_job(%{field: value})
-{:ok, %Job{}}
+iex> create_job(%{field: value})
+{:ok, %Job{}}
-iex> create_job(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> create_job(%{field: bad_value})
+{:error, %Ecto.Changeset{}}
iex> delete_job(job)
-{:ok, %Job{}}
+iex> delete_job(job)
+{:ok, %Job{}}
-iex> delete_job(job)
-{:error, %Ecto.Changeset{}}
+iex> delete_job(job)
+{:error, %Ecto.Changeset{}}
iex> get_job!(123)
-%Job{}
+iex> get_job!(123)
+%Job{}
-iex> get_job!(456)
+iex> get_job!(456)
** (Ecto.NoResultsError)
iex> update_job(job, %{field: new_value})
-{:ok, %Job{}}
+iex> update_job(job, %{field: new_value})
+{:ok, %Job{}}
-iex> update_job(job, %{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> update_job(job, %{field: bad_value})
+{:error, %Ecto.Changeset{}}
diff --git a/Lightning.Pipeline.StateAssembler.html b/Lightning.Pipeline.StateAssembler.html
index 7efc9f98bd..035f3d9709 100644
--- a/Lightning.Pipeline.StateAssembler.html
+++ b/Lightning.Pipeline.StateAssembler.html
@@ -121,7 +121,7 @@ For the most common jobs, an inbound webhook will store an :http_request
type
-dataclip. The reason that is created is associated with the dataclip.
At runtime, the initial state for a Run will be in the shape of:
{ "data": <the dataclip>, "configuration": <the job's credential> }
At runtime, the initial state for a Run will be in the shape of:
{ "data": <the dataclip>, "configuration": <the job's credential> }
saved-inputs
diff --git a/Lightning.Policies.Permissions.html b/Lightning.Policies.Permissions.html index 7c2bfb4d3b..0af67d4cbf 100644 --- a/Lightning.Policies.Permissions.html +++ b/Lightning.Policies.Permissions.html @@ -115,13 +115,13 @@This module defines a unique interface managing authorizations in Lightning.
Users in Lightning have instance-wide and project-wide roles which determine their level of access to resources in the application. Fo rmore details see the documentation.
These authorizations policies are all implemented under the lib/lightning/policies
folder. In that folder you can find 3 files:
users.ex
file has all the policies for the instances wide access levelsproject_users.ex
file has all the policies for the project wide access levelspermissions.ex
file defines the Lightning.Policies.Permissions.can/4
interface. Which is a wrapper around the Bodyguard.permit/4
function.
-We use that interface to be able to harmonize the use of policies accross the entire app.All the policies are tested in the test/lightning/policies
folder. And the test are written in a way that allows the reader to quickly who can do what in the app.
We have two variants of the Lightning.Policies.Permissions.can/4
interface:
Lightning.Policies.Permissions.can(policy, action, actor, resource)
returns :ok
if the actor can perform the action on the resource and {:error, :unauthorized}
otherwise.Lightning.Policies.Permissions.can?(policy, action, actor, resource)
returns true
if the actor can perform the action on the resource and false
otherwise.Here is an example of how we the Lightning.Policies.Permissions.can/4
interface to check if the a user can edit a job or not
can_edit_job = Lightning.Policies.ProjectUsers |> Lightning.Policies.Permissions.can?(:edit_job, socket.assigns.current_user, socket.assigns.project)
+We use that interface to be able to harmonize the use of policies accross the entire app.All the policies are tested in the test/lightning/policies
folder. And the test are written in a way that allows the reader to quickly who can do what in the app.
We have two variants of the Lightning.Policies.Permissions.can/4
interface:
Lightning.Policies.Permissions.can(policy, action, actor, resource)
returns :ok
if the actor can perform the action on the resource and {:error, :unauthorized}
otherwise.Lightning.Policies.Permissions.can?(policy, action, actor, resource)
returns true
if the actor can perform the action on the resource and false
otherwise.
Here is an example of how we the Lightning.Policies.Permissions.can/4
interface to check if the a user can edit a job or not
can_edit_job = Lightning.Policies.ProjectUsers |> Lightning.Policies.Permissions.can?(:edit_job, socket.assigns.current_user, socket.assigns.project)
-if can_edit_job do
+if can_edit_job do
# allow user to edit the job
-else
+else
# quick user out
-end
+end
iex> can(Lightning.Policies.Users, :create_workflow, user, project)
+iex> can(Lightning.Policies.Users, :create_workflow, user, project)
:ok
-iex> can(Lightning.Policies.Users, :create_project, user, %{})
-{:error, :unauthorized}
+iex> can(Lightning.Policies.Users, :create_project, user, %{})
+{:error, :unauthorized}
iex> can(Lightning.Policies.Users, :create_workflow, user, project)
+iex> can(Lightning.Policies.Users, :create_workflow, user, project)
true
-iex> can(Lightning.Policies.Users, :create_project, user, %{})
+iex> can(Lightning.Policies.Users, :create_project, user, %{})
false
iex> change_project(project)
-%Ecto.Changeset{data: %Project{}}
+iex> change_project(project)
+%Ecto.Changeset{data: %Project{}}
iex> create_project(%{field: value})
-{:ok, %Project{}}
+iex> create_project(%{field: value})
+{:ok, %Project{}}
-iex> create_project(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> create_project(%{field: bad_value})
+{:error, %Ecto.Changeset{}}
iex> delete_project(project)
-{:ok, %Project{}}
+iex> delete_project(project)
+{:ok, %Project{}}
-iex> delete_project(project)
-{:error, %Ecto.Changeset{}}
+iex> delete_project(project)
+{:error, %Ecto.Changeset{}}
iex> export_project(:yaml, project_id)
-{:ok, string}
+iex> export_project(:yaml, project_id)
+{:ok, string}
iex> get_project!(123)
-%Project{}
+iex> get_project!(123)
+%Project{}
-iex> get_project!(456)
+iex> get_project!(456)
** (Ecto.NoResultsError)
iex> get_project_user!(123)
-%ProjectUser{}
+iex> get_project_user!(123)
+%ProjectUser{}
-iex> get_project_user!(456)
+iex> get_project_user!(456)
** (Ecto.NoResultsError)
@@ -824,16 +824,16 @@ get_project_user_role(user, project)
Examples
-iex> get_project_user_role(user, project)
+iex> get_project_user_role(user, project)
:admin
-iex> get_project_user_role(user, project)
+iex> get_project_user_role(user, project)
:viewer
-iex> get_project_user_role(user, project)
+iex> get_project_user_role(user, project)
:editor
-iex> get_project_user_role(user, project)
+iex> get_project_user_role(user, project)
:owner
@@ -862,10 +862,10 @@ get_project_with_users!(id)
Examples
-iex> get_project!(123)
-%Project{}
+iex> get_project!(123)
+%Project{}
-iex> get_project!(456)
+iex> get_project!(456)
** (Ecto.NoResultsError)
@@ -976,8 +976,8 @@ list_projects()
Examples
-iex> list_projects()
-[%Project{}, ...]
+iex> list_projects()
+[%Project{}, ...]
@@ -1435,11 +1435,11 @@ update_project(project, attrs)
Examples
-iex> update_project(project, %{field: new_value})
-{:ok, %Project{}}
+iex> update_project(project, %{field: new_value})
+{:ok, %Project{}}
-iex> update_project(project, %{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> update_project(project, %{field: bad_value})
+{:error, %Ecto.Changeset{}}
@@ -1467,11 +1467,11 @@ update_project_user(project_user, attrs)
Examples
-iex> update_project_user(project_user, %{field: new_value})
-{:ok, %ProjectUser{}}
+iex> update_project_user(project_user, %{field: new_value})
+{:ok, %ProjectUser{}}
-iex> update_project_user(projectUser, %{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> update_project_user(projectUser, %{field: bad_value})
+{:error, %Ecto.Changeset{}}
@@ -1521,8 +1521,8 @@ validate_for_deletion(project, attrs)
Examples
-iex> validate_for_deletion(project)
-%Ecto.Changeset{data: %Project{}}
+iex> validate_for_deletion(project)
+%Ecto.Changeset{data: %Project{}}
diff --git a/Lightning.Runtime.LogAgent.html b/Lightning.Runtime.LogAgent.html
index a00066b7e0..40dc617f97 100644
--- a/Lightning.Runtime.LogAgent.html
+++ b/Lightning.Runtime.LogAgent.html
@@ -115,9 +115,9 @@
Agent facility to consume STDOUT/STDERR byte by byte.
Since it works on a byte by byte basis, you will need to perform line-splitting
-yourself.
Usage:
{:ok, log} = LogAgent.start_link()
-"foo" = LogAgent.process_chunk(log, {:stdout, "foo"})
-"foobar" = LogAgent.process_chunk(log, {:stdout, "bar"})
+yourself.Usage:
{:ok, log} = LogAgent.start_link()
+"foo" = LogAgent.process_chunk(log, {:stdout, "foo"})
+"foobar" = LogAgent.process_chunk(log, {:stdout, "bar"})
diff --git a/Lightning.Scrubber.html b/Lightning.Scrubber.html
index 1450068b8a..18784c12f7 100644
--- a/Lightning.Scrubber.html
+++ b/Lightning.Scrubber.html
@@ -114,11 +114,11 @@
-Process used to scrub strings of sensitive information.
Can be started via start_link/1
.
{:ok, scrubber} =
- Lightning.Scrubber.start_link(
+Process used to scrub strings of sensitive information.
Can be started via start_link/1
.
{:ok, scrubber} =
+ Lightning.Scrubber.start_link(
samples:
- Lightning.Credentials.sensitive_values_for(credential)
- )
Takes an optional :name
key, in case you need to name the process.
+ Lightning.Credentials.sensitive_values_for(credential)
+ )
Takes an optional :name
key, in case you need to name the process.
diff --git a/Lightning.TaskWorker.html b/Lightning.TaskWorker.html
index fe7ccb0296..d30a13d018 100644
--- a/Lightning.TaskWorker.html
+++ b/Lightning.TaskWorker.html
@@ -117,7 +117,7 @@
A TaskWorker with concurrency limits.
A simple concurrency limiter that wraps Task.Supervisor
, which already does
have the ability to specify max_children
; it throws an error when
that limit is exceeded.
To use it, start it like any other process; ideally in your supervision tree.
...,
- {Lightning.TaskWorker, name: :cli_task_worker, max_tasks: 4}
Options
:max_tasks
Defaults to the number of system schedulers available to the vm.
+ {Lightning.TaskWorker, name: :cli_task_worker, max_tasks: 4}
Options
:max_tasks
Defaults to the number of system schedulers available to the vm.
diff --git a/Lightning.Validators.html b/Lightning.Validators.html
index 8ca56bc5b6..08a04c6e33 100644
--- a/Lightning.Validators.html
+++ b/Lightning.Validators.html
@@ -192,10 +192,10 @@ validate_exclusive(changeset, fields, messa
Validate that only one of the fields is set at a time.
Example:
changeset
-|> validate_exclusive(
- [:source_job_id, :source_trigger_id],
+|> validate_exclusive(
+ [:source_job_id, :source_trigger_id],
"source_job_id and source_trigger_id are mutually exclusive"
-)
+)
diff --git a/Lightning.WorkOrderService.html b/Lightning.WorkOrderService.html
index 897ad31938..7692ffa5b0 100644
--- a/Lightning.WorkOrderService.html
+++ b/Lightning.WorkOrderService.html
@@ -342,11 +342,11 @@ create_work_order(attrs \\ %{})
Examples
-iex> create_work_order(%{field: value})
-{:ok, %WorkOrder{}}
+iex> create_work_order(%{field: value})
+{:ok, %WorkOrder{}}
-iex> create_work_order(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> create_work_order(%{field: bad_value})
+{:error, %Ecto.Changeset{}}
diff --git a/Lightning.Workflows.html b/Lightning.Workflows.html
index 55ee762ab0..61e0f2e2ef 100644
--- a/Lightning.Workflows.html
+++ b/Lightning.Workflows.html
@@ -349,8 +349,8 @@ change_workflow(workflow, attrs \\ %{})
Examples
-iex> change_workflow(workflow)
-%Ecto.Changeset{data: %Workflow{}}
+iex> change_workflow(workflow)
+%Ecto.Changeset{data: %Workflow{}}
@@ -402,11 +402,11 @@ create_workflow(attrs \\ %{})
Examples
-iex> create_workflow(%{field: value})
-{:ok, %Workflow{}}
+iex> create_workflow(%{field: value})
+{:ok, %Workflow{}}
-iex> create_workflow(%{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> create_workflow(%{field: bad_value})
+{:error, %Ecto.Changeset{}}
@@ -434,11 +434,11 @@ delete_workflow(workflow)
Examples
-iex> delete_workflow(workflow)
-{:ok, %Workflow{}}
+iex> delete_workflow(workflow)
+{:ok, %Workflow{}}
-iex> delete_workflow(workflow)
-{:error, %Ecto.Changeset{}}
+iex> delete_workflow(workflow)
+{:error, %Ecto.Changeset{}}
@@ -539,10 +539,10 @@ get_workflow!(id)
Examples
-iex> get_workflow!(123)
-%Workflow{}
+iex> get_workflow!(123)
+%Workflow{}
-iex> get_workflow!(456)
+iex> get_workflow!(456)
** (Ecto.NoResultsError)
@@ -623,8 +623,8 @@ list_workflows()
Examples
-iex> list_workflows()
-[%Workflow{}, ...]
+iex> list_workflows()
+[%Workflow{}, ...]
@@ -654,8 +654,8 @@ mark_for_deletion(workflow, attrs \\ %{})
Examples
-iex> change_request_deletion(workflow)
-%Ecto.Changeset{data: %Workflow{}}
+iex> change_request_deletion(workflow)
+%Ecto.Changeset{data: %Workflow{}}
@@ -733,11 +733,11 @@ update_workflow(workflow, attrs)
Examples
-iex> update_workflow(workflow, %{field: new_value})
-{:ok, %Workflow{}}
+iex> update_workflow(workflow, %{field: new_value})
+{:ok, %Workflow{}}
-iex> update_workflow(workflow, %{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> update_workflow(workflow, %{field: bad_value})
+{:error, %Ecto.Changeset{}}
diff --git a/Lightning.epub b/Lightning.epub
index 4f9549171eacf793f23fcae878b32cb94d130d50..72416f7436ca1b61881aee8264d2e177ff288315 100644
GIT binary patch
delta 83090
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%0AHsz+adsP|5-GL
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