From 3bfbbabe273d301f1ff76b220562047848628d25 Mon Sep 17 00:00:00 2001
From: stuartc 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 Queries the AI assistant with the given content. Returns Example Queries the AI assistant with the given content. Returns Example Perform a DELETE request. See Perform a DELETE request. See Perform a DELETE request. See Perform a DELETE request. See Perform a GET request. See Perform a GET request. See Perform a GET request. See Perform a GET request. See Perform a HEAD request. See Perform a HEAD request. See Perform a HEAD request. See Perform a HEAD request. See Perform a OPTIONS request. See Perform a OPTIONS request. See Perform a OPTIONS request. See Perform a OPTIONS request. See Perform a PATCH request. See Perform a PATCH request. See Perform a PATCH request. See Perform a PATCH request. See Perform a POST request. See Perform a POST request. See Perform a POST request. See Perform a POST request. See Perform a PUT request. See Perform a PUT request. See Perform a PUT request. See Perform a PUT request. See Perform a TRACE request. See Perform a TRACE request. See Perform a TRACE request. See Perform a TRACE request. See 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 command
Lightning.API
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Accounts.Events.html b/Lightning.Accounts.Events.html
index 6a3ee32a7f..6e0fa707f5 100644
--- a/Lightning.Accounts.Events.html
+++ b/Lightning.Accounts.Events.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Accounts.Events
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Accounts.User.RolesEnum.html b/Lightning.Accounts.User.RolesEnum.html
index 8bad100852..bdc4140ab2 100644
--- a/Lightning.Accounts.User.RolesEnum.html
+++ b/Lightning.Accounts.User.RolesEnum.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Accounts.User.RolesEnum
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Accounts.User.html b/Lightning.Accounts.User.html
index 293b79e2de..ba179585aa 100644
--- a/Lightning.Accounts.User.html
+++ b/Lightning.Accounts.User.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Accounts.User
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Accounts.UserBackupCode.html b/Lightning.Accounts.UserBackupCode.html
index fb04501af7..f34231bf28 100644
--- a/Lightning.Accounts.UserBackupCode.html
+++ b/Lightning.Accounts.UserBackupCode.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Accounts.UserBackupCode
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Accounts.UserNotifier.html b/Lightning.Accounts.UserNotifier.html
index a7cb1dca9e..86e983b38e 100644
--- a/Lightning.Accounts.UserNotifier.html
+++ b/Lightning.Accounts.UserNotifier.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Accounts.UserNotifier
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Accounts.UserTOTP.html b/Lightning.Accounts.UserTOTP.html
index f5ee5b85be..32a087f517 100644
--- a/Lightning.Accounts.UserTOTP.html
+++ b/Lightning.Accounts.UserTOTP.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Accounts.UserTOTP
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Accounts.UserToken.html b/Lightning.Accounts.UserToken.html
index 10f2d7eb00..cea60fcf3f 100644
--- a/Lightning.Accounts.UserToken.html
+++ b/Lightning.Accounts.UserToken.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Accounts.UserToken
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Accounts.html b/Lightning.Accounts.html
index 974852f850..6f38be7654 100644
--- a/Lightning.Accounts.html
+++ b/Lightning.Accounts.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Accounts
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -827,10 +827,10 @@ apply_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_user_confirmation_instructions(user
Examples
-
iex> deliver_user_confirmation_instructions(user)
-{:ok, %{to: ..., body: ...}}
+
+iex> deliver_user_confirmation_instructions(confirmed_user)
+{:error, :already_confirmed}iex> deliver_user_confirmation_instructions(user)
+{:ok, %{to: ..., body: ...}}
-iex> deliver_user_confirmation_instructions(confirmed_user)
-{: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_preference(user, key)
Examples
-iex> get_preference(user, "editor.orientation")
+
iex> get_preference(user, "editor.orientation")
"vertical"
-iex> get_preference(user, "notifications.enabled")
+iex> get_preference(user, "notifications.enabled")
true
get_token!(id)
Examples
-iex> get_token!(123)
-%UserToken{}
+
@@ -1577,10 +1577,10 @@ iex> get_token!(123)
+%UserToken{}
-iex> get_token!(456)
+iex> get_token!(456)
** (Ecto.NoResultsError)
get_user(id)
Examples
-iex> get_user(123)
-%User{}
+
@@ -1675,10 +1675,10 @@ iex> get_user(123)
+%User{}
-iex> get_user!(456)
+iex> get_user!(456)
nil
get_user_by_email(email)
Examples
-iex> get_user_by_email("foo@example.com")
-%User{}
+
@@ -1707,10 +1707,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{}
+
@@ -1739,10 +1739,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{}
+
@@ -1939,8 +1939,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{}}
request_email_update(user, new_email)
Examples
-iex> request_email_update(user, new_email)
+
iex> request_email_update(user, new_email)
:ok
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{}}
update_user_preference(user, key, value)
Examples
-
iex> update_user_preference(user, "editor.orientation", "vertical")
-{:ok, %User{}}
+
+iex> update_user_preference(user, "notifications.enabled", true)
+{:ok, %User{}}iex> update_user_preference(user, "editor.orientation", "vertical")
+{:ok, %User{}}
-iex> update_user_preference(user, "notifications.enabled", true)
-{:ok, %User{}}
update_user_preferences(user, preferences)<
Examples
-
+iex> update_user_preferences(%User{}, %{"editor.orientaion" => "vertical"})
iex> update_user_preferences(%User{}, %{"editor.orientaion" => "vertical"})
validate_change_user_email(user, params \\
Examples
-
+iex> validate_change_user_email(user, %{"email" => "new@example.com", "current_password" => "secret"})
-%Ecto.Changeset{...}
iex> validate_change_user_email(user, %{"email" => "new@example.com", "current_password" => "secret"})
+%Ecto.Changeset{...}
Lightning.AdaptorRegistry.Npm
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -1692,14 +1692,14 @@ 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"}])
Lightning.AdaptorRegistry
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -141,9 +141,9 @@
@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
@@ -434,10 +434,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 }
Lightning.AdaptorService
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AiAssistant.Limiter.html b/Lightning.AiAssistant.Limiter.html
index 93d533b3c7..fa97299a68 100644
--- a/Lightning.AiAssistant.Limiter.html
+++ b/Lightning.AiAssistant.Limiter.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AiAssistant.Limiter
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AiAssistant.html b/Lightning.AiAssistant.html
index 18af20f7aa..a218160079 100644
--- a/Lightning.AiAssistant.html
+++ b/Lightning.AiAssistant.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AiAssistant
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -510,8 +510,8 @@ query(session, content)
-{:ok, session}
if the query was successful, otherwise :error
.
+iex> AiAssistant.query(session, "fn()")
-{:ok, session}
{:ok, session}
if the query was successful, otherwise :error
.iex> AiAssistant.query(session, "fn()")
+{:ok, session}
Lightning.ApolloClient
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Auditing.Audit.html b/Lightning.Auditing.Audit.html
index 88003fd04d..67faacc68b 100644
--- a/Lightning.Auditing.Audit.html
+++ b/Lightning.Auditing.Audit.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Auditing.Audit behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Auditing.html b/Lightning.Auditing.html
index db9e810d3a..aa43a49e8a 100644
--- a/Lightning.Auditing.html
+++ b/Lightning.Auditing.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.Auditing
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.AuthConfig.html b/Lightning.AuthProviders.AuthConfig.html
index 57594f44ce..5e0ab1e9e7 100644
--- a/Lightning.AuthProviders.AuthConfig.html
+++ b/Lightning.AuthProviders.AuthConfig.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.AuthConfig
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.CacheWarmer.html b/Lightning.AuthProviders.CacheWarmer.html
index a4d245d6c2..d2a9ca2ff6 100644
--- a/Lightning.AuthProviders.CacheWarmer.html
+++ b/Lightning.AuthProviders.CacheWarmer.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.CacheWarmer
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.Common.TokenBody.html b/Lightning.AuthProviders.Common.TokenBody.html
index 6c9a3840eb..90461138fe 100644
--- a/Lightning.AuthProviders.Common.TokenBody.html
+++ b/Lightning.AuthProviders.Common.TokenBody.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.Common.TokenBody
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.Common.html b/Lightning.AuthProviders.Common.html
index d018c136d7..06620930d1 100644
--- a/Lightning.AuthProviders.Common.html
+++ b/Lightning.AuthProviders.Common.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.Common
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.Google.html b/Lightning.AuthProviders.Google.html
index 186da23dec..bd65ab4cc0 100644
--- a/Lightning.AuthProviders.Google.html
+++ b/Lightning.AuthProviders.Google.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.Google
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.Handler.html b/Lightning.AuthProviders.Handler.html
index 3314d2d3f2..50dfd645eb 100644
--- a/Lightning.AuthProviders.Handler.html
+++ b/Lightning.AuthProviders.Handler.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.Handler
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.OAuthBehaviour.html b/Lightning.AuthProviders.OAuthBehaviour.html
index 44901fe663..afbfb7de32 100644
--- a/Lightning.AuthProviders.OAuthBehaviour.html
+++ b/Lightning.AuthProviders.OAuthBehaviour.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.OAuthBehaviour behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.OauthHTTPClient.html b/Lightning.AuthProviders.OauthHTTPClient.html
index 2148aaf639..cd1f420700 100644
--- a/Lightning.AuthProviders.OauthHTTPClient.html
+++ b/Lightning.AuthProviders.OauthHTTPClient.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.OauthHTTPClient
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -497,11 +497,11 @@ delete(client, url, opts)
-request/1
or request/2
for options definition.
+delete("/users")
-delete("/users", query: [scope: "admin"])
-delete(client, "/users")
-delete(client, "/users", query: [scope: "admin"])
-delete(client, "/users", body: %{name: "Jon"})
request/1
or request/2
for options definition.delete("/users")
+delete("/users", query: [scope: "admin"])
+delete(client, "/users")
+delete(client, "/users", query: [scope: "admin"])
+delete(client, "/users", body: %{name: "Jon"})
delete!(client, url, opts)
-request!/1
or request!/2
for options definition.
+delete!("/users")
-delete!("/users", query: [scope: "admin"])
-delete!(client, "/users")
-delete!(client, "/users", query: [scope: "admin"])
-delete!(client, "/users", body: %{name: "Jon"})
request!/1
or request!/2
for options definition.delete!("/users")
+delete!("/users", query: [scope: "admin"])
+delete!(client, "/users")
+delete!(client, "/users", query: [scope: "admin"])
+delete!(client, "/users", body: %{name: "Jon"})
get(client, url, opts)
-request/1
or request/2
for options definition.
+get("/users")
-get("/users", query: [scope: "admin"])
-get(client, "/users")
-get(client, "/users", query: [scope: "admin"])
-get(client, "/users", body: %{name: "Jon"})
request/1
or request/2
for options definition.get("/users")
+get("/users", query: [scope: "admin"])
+get(client, "/users")
+get(client, "/users", query: [scope: "admin"])
+get(client, "/users", body: %{name: "Jon"})
get!(client, url, opts)
-request!/1
or request!/2
for options definition.
+get!("/users")
-get!("/users", query: [scope: "admin"])
-get!(client, "/users")
-get!(client, "/users", query: [scope: "admin"])
-get!(client, "/users", body: %{name: "Jon"})
request!/1
or request!/2
for options definition.get!("/users")
+get!("/users", query: [scope: "admin"])
+get!(client, "/users")
+get!(client, "/users", query: [scope: "admin"])
+get!(client, "/users", body: %{name: "Jon"})
head(client, url, opts)
-request/1
or request/2
for options definition.
+head("/users")
-head("/users", query: [scope: "admin"])
-head(client, "/users")
-head(client, "/users", query: [scope: "admin"])
-head(client, "/users", body: %{name: "Jon"})
request/1
or request/2
for options definition.head("/users")
+head("/users", query: [scope: "admin"])
+head(client, "/users")
+head(client, "/users", query: [scope: "admin"])
+head(client, "/users", body: %{name: "Jon"})
head!(client, url, opts)
-request!/1
or request!/2
for options definition.
+head!("/users")
-head!("/users", query: [scope: "admin"])
-head!(client, "/users")
-head!(client, "/users", query: [scope: "admin"])
-head!(client, "/users", body: %{name: "Jon"})
request!/1
or request!/2
for options definition.head!("/users")
+head!("/users", query: [scope: "admin"])
+head!(client, "/users")
+head!(client, "/users", query: [scope: "admin"])
+head!(client, "/users", body: %{name: "Jon"})
options(client, url, opts)
-request/1
or request/2
for options definition.
+options("/users")
-options("/users", query: [scope: "admin"])
-options(client, "/users")
-options(client, "/users", query: [scope: "admin"])
-options(client, "/users", body: %{name: "Jon"})
request/1
or request/2
for options definition.options("/users")
+options("/users", query: [scope: "admin"])
+options(client, "/users")
+options(client, "/users", query: [scope: "admin"])
+options(client, "/users", body: %{name: "Jon"})
options!(client, url, opts)
-request!/1
or request!/2
for options definition.
+options!("/users")
-options!("/users", query: [scope: "admin"])
-options!(client, "/users")
-options!(client, "/users", query: [scope: "admin"])
-options!(client, "/users", body: %{name: "Jon"})
request!/1
or request!/2
for options definition.options!("/users")
+options!("/users", query: [scope: "admin"])
+options!(client, "/users")
+options!(client, "/users", query: [scope: "admin"])
+options!(client, "/users", body: %{name: "Jon"})
patch(client, url, body, opts)
-request/1
or request/2
for options definition.
+patch("/users", %{name: "Jon"})
-patch("/users", %{name: "Jon"}, query: [scope: "admin"])
-patch(client, "/users", %{name: "Jon"})
-patch(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
request/1
or request/2
for options definition.patch("/users", %{name: "Jon"})
+patch("/users", %{name: "Jon"}, query: [scope: "admin"])
+patch(client, "/users", %{name: "Jon"})
+patch(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
patch!(client, url, body, opts)
-request!/1
or request!/2
for options definition.
+patch!("/users", %{name: "Jon"})
-patch!("/users", %{name: "Jon"}, query: [scope: "admin"])
-patch!(client, "/users", %{name: "Jon"})
-patch!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
request!/1
or request!/2
for options definition.patch!("/users", %{name: "Jon"})
+patch!("/users", %{name: "Jon"}, query: [scope: "admin"])
+patch!(client, "/users", %{name: "Jon"})
+patch!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
post(client, url, body, opts)
-request/1
or request/2
for options definition.
+post("/users", %{name: "Jon"})
-post("/users", %{name: "Jon"}, query: [scope: "admin"])
-post(client, "/users", %{name: "Jon"})
-post(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
request/1
or request/2
for options definition.post("/users", %{name: "Jon"})
+post("/users", %{name: "Jon"}, query: [scope: "admin"])
+post(client, "/users", %{name: "Jon"})
+post(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
post!(client, url, body, opts)
-request!/1
or request!/2
for options definition.
+post!("/users", %{name: "Jon"})
-post!("/users", %{name: "Jon"}, query: [scope: "admin"])
-post!(client, "/users", %{name: "Jon"})
-post!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
request!/1
or request!/2
for options definition.post!("/users", %{name: "Jon"})
+post!("/users", %{name: "Jon"}, query: [scope: "admin"])
+post!(client, "/users", %{name: "Jon"})
+post!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
put(client, url, body, opts)
-request/1
or request/2
for options definition.
+put("/users", %{name: "Jon"})
-put("/users", %{name: "Jon"}, query: [scope: "admin"])
-put(client, "/users", %{name: "Jon"})
-put(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
request/1
or request/2
for options definition.put("/users", %{name: "Jon"})
+put("/users", %{name: "Jon"}, query: [scope: "admin"])
+put(client, "/users", %{name: "Jon"})
+put(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
put!(client, url, body, opts)
-request!/1
or request!/2
for options definition.
+put!("/users", %{name: "Jon"})
-put!("/users", %{name: "Jon"}, query: [scope: "admin"])
-put!(client, "/users", %{name: "Jon"})
-put!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
request!/1
or request!/2
for options definition.put!("/users", %{name: "Jon"})
+put!("/users", %{name: "Jon"}, query: [scope: "admin"])
+put!(client, "/users", %{name: "Jon"})
+put!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
request(client \\ %Tesla.Client{}, options)
Examples
-
ExampleApi.request(method: :get, url: "/users/path")
+
+ExampleApi.get("/users/1")
+ExampleApi.post(client, "/users", %{name: "Jon"})ExampleApi.request(method: :get, url: "/users/path")
# use shortcut methods
-ExampleApi.get("/users/1")
-ExampleApi.post(client, "/users", %{name: "Jon"})
trace(client, url, opts)
-request/1
or request/2
for options definition.
+trace("/users")
-trace("/users", query: [scope: "admin"])
-trace(client, "/users")
-trace(client, "/users", query: [scope: "admin"])
-trace(client, "/users", body: %{name: "Jon"})
request/1
or request/2
for options definition.trace("/users")
+trace("/users", query: [scope: "admin"])
+trace(client, "/users")
+trace(client, "/users", query: [scope: "admin"])
+trace(client, "/users", body: %{name: "Jon"})
trace!(client, url, opts)
-request!/1
or request!/2
for options definition.
+trace!("/users")
-trace!("/users", query: [scope: "admin"])
-trace!(client, "/users")
-trace!(client, "/users", query: [scope: "admin"])
-trace!(client, "/users", body: %{name: "Jon"})
request!/1
or request!/2
for options definition.trace!("/users")
+trace!("/users", query: [scope: "admin"])
+trace!(client, "/users")
+trace!(client, "/users", query: [scope: "admin"])
+trace!(client, "/users", body: %{name: "Jon"})
Lightning.AuthProviders.Salesforce
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.Store.html b/Lightning.AuthProviders.Store.html
index fc38af12c6..3d50f53663 100644
--- a/Lightning.AuthProviders.Store.html
+++ b/Lightning.AuthProviders.Store.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.Store
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.AuthProviders.WellKnown.html b/Lightning.AuthProviders.WellKnown.html
index ae4dd16c9f..21293d344e 100644
--- a/Lightning.AuthProviders.WellKnown.html
+++ b/Lightning.AuthProviders.WellKnown.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.AuthProviders.WellKnown
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -1868,14 +1868,14 @@ 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"}])
Lightning.AuthProviders
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.BuildMacros.html b/Lightning.BuildMacros.html
index 067113a054..6245071698 100644
--- a/Lightning.BuildMacros.html
+++ b/Lightning.BuildMacros.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.BuildMacros
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -213,13 +213,13 @@ do_in(envs, list)
Examples
-do_in(:dev) do
- IO.puts("This will only be printed in the dev environment")
-end
+
+do_in([:dev, :test]) do
+ IO.puts("This will only be printed in the dev and test environments")
+enddo_in(:dev) do
+ IO.puts("This will only be printed in the dev environment")
+end
-do_in([:dev, :test]) do
- IO.puts("This will only be printed in the dev and test environments")
-end
Lightning.CLI.Result
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -145,7 +145,7 @@
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.CLI.html b/Lightning.CLI.html index 64ec6ec045..8d572c9379 100644 --- a/Lightning.CLI.html +++ b/Lightning.CLI.html @@ -5,16 +5,16 @@ - + -iex> create_collection(%{name: "New Collection", description: "Description here"})
-{:ok, %Collection{}}
+iex> create_collection(%{name: "New Collection", description: "Description here"})
+{:ok, %Collection{}}
-iex> create_collection(%{name: nil})
-{:error, %Ecto.Changeset{}}
+
iex> create_collection(%{name: nil})
+{:error, %Ecto.Changeset{}}
iex> list_collections()
-[%Collection{}, ...]
+iex> list_collections()
+[%Collection{}, ...]
-iex> list_collections(order_by: [asc: :inserted_at], preload: [:project, :user])
-[%Collection{}, ...]
+
iex> list_collections(order_by: [asc: :inserted_at], preload: [:project, :user])
+[%Collection{}, ...]
iex> update_collection(collection, %{name: "Updated Name"})
-{:ok, %Collection{}}
+iex> update_collection(collection, %{name: "Updated Name"})
+{:ok, %Collection{}}
-iex> update_collection(collection, %{name: nil})
-{:error, %Ecto.Changeset{}}
+
iex> update_collection(collection, %{name: nil})
+{:error, %Ecto.Changeset{}}
config/runtime.exs
) file.Sourcing envs
Internally this module uses
Dotenvy.source/1
to source environment variables from the.env
,.env.<config_env>
, and.env.<config_env>.override
files. It also sources the system environment variables.Calling
configure/0
without callingsource_envs/0
orDotenvy.source/2
-first will result in no environment variables being loaded.
Usage:
Lightning.Config.Bootstrap.source_envs()
-Lightning.Config.Bootstrap.configure()
+first will result in no environment variables being loaded.Usage:
Lightning.Config.Bootstrap.source_envs()
+Lightning.Config.Bootstrap.configure()
diff --git a/Lightning.Config.Utils.html b/Lightning.Config.Utils.html
index b49de75dee..82e50e512d 100644
--- a/Lightning.Config.Utils.html
+++ b/Lightning.Config.Utils.html
@@ -5,16 +5,16 @@
-
+
- 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> has_activity_in_projects?(%Credential{id: some_id})
+iex> has_activity_in_projects?(%Credential{id: some_id})
true
-iex> has_activity_in_projects?(%Credential{id: another_id})
+iex> has_activity_in_projects?(%Credential{id: another_id})
false
@@ -661,11 +661,11 @@ invalid_projects_for_user(credential_id, us
Examples
-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"]
@@ -705,9 +705,9 @@ list_credentials(project)
Examples
- When given a Project:
iex> list_credentials(%Project{id: 1})
-[%Credential{project_id: 1}, %Credential{project_id: 1}]
When given a User:
iex> list_credentials(%User{id: 123})
-[%Credential{user_id: 123}, %Credential{user_id: 123}]
+ When given a Project:
iex> list_credentials(%Project{id: 1})
+[%Credential{project_id: 1}, %Credential{project_id: 1}]
When given a User:
iex> list_credentials(%User{id: 123})
+[%Credential{user_id: 123}, %Credential{user_id: 123}]
@@ -818,11 +818,11 @@ schedule_credential_deletion(credential)
Examples
-iex> schedule_credential_deletion(%Credential{id: some_id})
-{:ok, %Credential{}}
+iex> schedule_credential_deletion(%Credential{id: some_id})
+{:ok, %Credential{}}
-iex> schedule_credential_deletion(%Credential{})
-{:error, %Ecto.Changeset{}}
+iex> schedule_credential_deletion(%Credential{})
+{:error, %Ecto.Changeset{}}
@@ -879,11 +879,11 @@ update_credential(credential, attrs)
Examples
-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{}}
diff --git a/Lightning.DashboardStats.ProjectMetrics.html b/Lightning.DashboardStats.ProjectMetrics.html
index f4f4b2d22b..d43f8d9fc8 100644
--- a/Lightning.DashboardStats.ProjectMetrics.html
+++ b/Lightning.DashboardStats.ProjectMetrics.html
@@ -5,16 +5,16 @@
-
+
- Lightning.DashboardStats.ProjectMetrics — Lightning v2.10.0
+ Lightning.DashboardStats.ProjectMetrics — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.DashboardStats.ProjectMetrics
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.DashboardStats.WorkflowStats.html b/Lightning.DashboardStats.WorkflowStats.html
index 3aef7750d0..4117ecf544 100644
--- a/Lightning.DashboardStats.WorkflowStats.html
+++ b/Lightning.DashboardStats.WorkflowStats.html
@@ -5,16 +5,16 @@
-
+
- Lightning.DashboardStats.WorkflowStats — Lightning v2.10.0
+ Lightning.DashboardStats.WorkflowStats — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.DashboardStats.WorkflowStats
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.DashboardStats.html b/Lightning.DashboardStats.html
index eb07167781..5ebcad7a7c 100644
--- a/Lightning.DashboardStats.html
+++ b/Lightning.DashboardStats.html
@@ -5,16 +5,16 @@
-
+
- Lightning.DashboardStats — Lightning v2.10.0
+ Lightning.DashboardStats — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.DashboardStats
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.DataclipScrubber.html b/Lightning.DataclipScrubber.html
index f4ac9d696e..88337f82e3 100644
--- a/Lightning.DataclipScrubber.html
+++ b/Lightning.DataclipScrubber.html
@@ -5,16 +5,16 @@
-
+
- Lightning.DataclipScrubber — Lightning v2.10.0
+ Lightning.DataclipScrubber — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.DataclipScrubber
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Demo.html b/Lightning.Demo.html
index c73dcb86b3..a7415383d7 100644
--- a/Lightning.Demo.html
+++ b/Lightning.Demo.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Demo — Lightning v2.10.0
+ Lightning.Demo — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Demo
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.ExportUtils.html b/Lightning.ExportUtils.html
index 8591b2993c..9db3098ba3 100644
--- a/Lightning.ExportUtils.html
+++ b/Lightning.ExportUtils.html
@@ -5,16 +5,16 @@
-
+
- Lightning.ExportUtils — Lightning v2.10.0
+ Lightning.ExportUtils — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.ExportUtils
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.AccountHooking.html b/Lightning.Extensions.AccountHooking.html
index 6c3e13e896..057d9f9ebc 100644
--- a/Lightning.Extensions.AccountHooking.html
+++ b/Lightning.Extensions.AccountHooking.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.AccountHooking — Lightning v2.10.0
+ Lightning.Extensions.AccountHooking — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.AccountHooking behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.FifoRunQueue.html b/Lightning.Extensions.FifoRunQueue.html
index 683063048e..16421ea6d3 100644
--- a/Lightning.Extensions.FifoRunQueue.html
+++ b/Lightning.Extensions.FifoRunQueue.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.FifoRunQueue — Lightning v2.10.0
+ Lightning.Extensions.FifoRunQueue — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.FifoRunQueue
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.Message.html b/Lightning.Extensions.Message.html
index 669e87fbf5..9ba5a2da64 100644
--- a/Lightning.Extensions.Message.html
+++ b/Lightning.Extensions.Message.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.Message — Lightning v2.10.0
+ Lightning.Extensions.Message — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.Message
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.ProjectHook.html b/Lightning.Extensions.ProjectHook.html
index 8d37fb15bd..56bce4f23a 100644
--- a/Lightning.Extensions.ProjectHook.html
+++ b/Lightning.Extensions.ProjectHook.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.ProjectHook — Lightning v2.10.0
+ Lightning.Extensions.ProjectHook — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.ProjectHook
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.ProjectHooking.html b/Lightning.Extensions.ProjectHooking.html
index e567532d1c..a3a4359d78 100644
--- a/Lightning.Extensions.ProjectHooking.html
+++ b/Lightning.Extensions.ProjectHooking.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.ProjectHooking — Lightning v2.10.0
+ Lightning.Extensions.ProjectHooking — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.ProjectHooking behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.RateLimiter.html b/Lightning.Extensions.RateLimiter.html
index ab9d6caa0a..1bbdc0f894 100644
--- a/Lightning.Extensions.RateLimiter.html
+++ b/Lightning.Extensions.RateLimiter.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.RateLimiter — Lightning v2.10.0
+ Lightning.Extensions.RateLimiter — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.RateLimiter
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.RateLimiting.Context.html b/Lightning.Extensions.RateLimiting.Context.html
index 295fd0919e..0a98e7b02b 100644
--- a/Lightning.Extensions.RateLimiting.Context.html
+++ b/Lightning.Extensions.RateLimiting.Context.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.RateLimiting.Context — Lightning v2.10.0
+ Lightning.Extensions.RateLimiting.Context — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.RateLimiting.Context
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.RateLimiting.html b/Lightning.Extensions.RateLimiting.html
index ca982cf989..88f9ccd6a3 100644
--- a/Lightning.Extensions.RateLimiting.html
+++ b/Lightning.Extensions.RateLimiting.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.RateLimiting — Lightning v2.10.0
+ Lightning.Extensions.RateLimiting — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.RateLimiting behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.RunQueue.html b/Lightning.Extensions.RunQueue.html
index 267bf9e11a..ff5be9f6e8 100644
--- a/Lightning.Extensions.RunQueue.html
+++ b/Lightning.Extensions.RunQueue.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.RunQueue — Lightning v2.10.0
+ Lightning.Extensions.RunQueue — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.RunQueue behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.UsageLimiter.html b/Lightning.Extensions.UsageLimiter.html
index 1a041961c2..bfaa2471c3 100644
--- a/Lightning.Extensions.UsageLimiter.html
+++ b/Lightning.Extensions.UsageLimiter.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.UsageLimiter — Lightning v2.10.0
+ Lightning.Extensions.UsageLimiter — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.UsageLimiter
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Extensions.UsageLimiting.html b/Lightning.Extensions.UsageLimiting.html
index b68bed8747..de334e2b70 100644
--- a/Lightning.Extensions.UsageLimiting.html
+++ b/Lightning.Extensions.UsageLimiting.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Extensions.UsageLimiting — Lightning v2.10.0
+ Lightning.Extensions.UsageLimiting — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Extensions.UsageLimiting behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.FailureNotifierView.html b/Lightning.FailureNotifierView.html
index 6b4b2d2a7c..d6208d4a66 100644
--- a/Lightning.FailureNotifierView.html
+++ b/Lightning.FailureNotifierView.html
@@ -5,16 +5,16 @@
-
+
- Lightning.FailureNotifierView — Lightning v2.10.0
+ Lightning.FailureNotifierView — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.FailureNotifierView
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Graph.html b/Lightning.Graph.html
index dca524ae31..29f973d840 100644
--- a/Lightning.Graph.html
+++ b/Lightning.Graph.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Graph — Lightning v2.10.0
+ Lightning.Graph — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Graph
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Helpers.html b/Lightning.Helpers.html
index adff1cff3c..f732324e06 100644
--- a/Lightning.Helpers.html
+++ b/Lightning.Helpers.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Helpers — Lightning v2.10.0
+ Lightning.Helpers — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Helpers
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -327,10 +327,10 @@ copy_error(changeset, original_key, new_key
Example
-iex> changeset = %Ecto.Changeset{errors: [name: {"has already been taken", []}]}
-iex> updated_changeset = Lightning.Helpers.copy_error(changeset, :name, :raw_name)
+iex> changeset = %Ecto.Changeset{errors: [name: {"has already been taken", []}]}
+iex> updated_changeset = Lightning.Helpers.copy_error(changeset, :name, :raw_name)
iex> updated_changeset.errors
-[name: {"has already been taken", []}, raw_name: {"has already been taken", []}]
If the original_key
doesn't exist in the errors, or if the new_key
already exists and overwrite
is set to false
, the changeset is returned unchanged.
+[name: {"has already been taken", []}, raw_name: {"has already been taken", []}]
If the original_key
doesn't exist in the errors, or if the new_key
already exists and overwrite
is set to false
, the changeset is returned unchanged.
@@ -449,10 +449,10 @@ url_safe_name(name)
Examples
-iex> url_safe_name("My Project!!")
+iex> url_safe_name("My Project!!")
"my-project"
-iex> url_safe_name(nil)
+iex> url_safe_name(nil)
""
diff --git a/Lightning.Invocation.Dataclip.html b/Lightning.Invocation.Dataclip.html
index 7ae6a763f3..bc2df24b29 100644
--- a/Lightning.Invocation.Dataclip.html
+++ b/Lightning.Invocation.Dataclip.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Invocation.Dataclip — Lightning v2.10.0
+ Lightning.Invocation.Dataclip — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Invocation.Dataclip
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Invocation.LogLine.html b/Lightning.Invocation.LogLine.html
index 6341e154de..c538bed235 100644
--- a/Lightning.Invocation.LogLine.html
+++ b/Lightning.Invocation.LogLine.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Invocation.LogLine — Lightning v2.10.0
+ Lightning.Invocation.LogLine — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Invocation.LogLine
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Invocation.Query.html b/Lightning.Invocation.Query.html
index 1abb3e576e..97c66fb399 100644
--- a/Lightning.Invocation.Query.html
+++ b/Lightning.Invocation.Query.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Invocation.Query — Lightning v2.10.0
+ Lightning.Invocation.Query — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Invocation.Query
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Invocation.Step.html b/Lightning.Invocation.Step.html
index c4f7c6198d..52e7eb8991 100644
--- a/Lightning.Invocation.Step.html
+++ b/Lightning.Invocation.Step.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Invocation.Step — Lightning v2.10.0
+ Lightning.Invocation.Step — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Invocation.Step
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Invocation.html b/Lightning.Invocation.html
index 2e6b970180..ea91b6a190 100644
--- a/Lightning.Invocation.html
+++ b/Lightning.Invocation.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Invocation — Lightning v2.10.0
+ Lightning.Invocation — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Invocation
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -521,8 +521,8 @@ change_dataclip(dataclip, attrs \\ %{})
Examples
-iex> change_dataclip(dataclip)
-%Ecto.Changeset{data: %Dataclip{}}
+iex> change_dataclip(dataclip)
+%Ecto.Changeset{data: %Dataclip{}}
@@ -552,8 +552,8 @@ change_step(step, attrs \\ %{})
Examples
-iex> change_step(step)
-%Ecto.Changeset{data: %Step{}}
+iex> change_step(step)
+%Ecto.Changeset{data: %Step{}}
@@ -613,11 +613,11 @@ create_dataclip(attrs \\ %{})
Examples
-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{}}
@@ -645,11 +645,11 @@ delete_dataclip(dataclip)
Examples
-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{}}
@@ -684,14 +684,14 @@ get_dataclip(step)
Examples
-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(%Step{id: "a uuid"})
-%Dataclip{}
+iex> get_dataclip(%Step{id: "a uuid"})
+%Dataclip{}
@@ -725,10 +725,10 @@ get_dataclip!(id)
Examples
-iex> get_dataclip!(123)
-%Dataclip{}
+iex> get_dataclip!(123)
+%Dataclip{}
-iex> get_dataclip!(456)
+iex> get_dataclip!(456)
** (Ecto.NoResultsError)
@@ -926,10 +926,10 @@ get_step!(id)
Examples
-iex> get_step!(123)
-%Step{}
+iex> get_step!(123)
+%Step{}
-iex> get_step!(456)
+iex> get_step!(456)
** (Ecto.NoResultsError)
@@ -1058,8 +1058,8 @@ list_dataclips()
Examples
-iex> list_dataclips()
-[%Dataclip{}, ...]
+iex> list_dataclips()
+[%Dataclip{}, ...]
@@ -1168,8 +1168,8 @@ list_steps()
Examples
-iex> list_steps()
-[%Step{}, ...]
+iex> list_steps()
+[%Step{}, ...]
@@ -1296,7 +1296,7 @@ search_workorders(project)
Example:
-search_workorders(%Project{id: 1}, %SearchParams{status: ["completed"]})
+search_workorders(%Project{id: 1}, %SearchParams{status: ["completed"]})
@@ -1402,11 +1402,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{}}
diff --git a/Lightning.Janitor.html b/Lightning.Janitor.html
index 650b316eae..13551054ee 100644
--- a/Lightning.Janitor.html
+++ b/Lightning.Janitor.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Janitor — Lightning v2.10.0
+ Lightning.Janitor — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Janitor
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Jobs.html b/Lightning.Jobs.html
index eb61605f9a..f80029d1f3 100644
--- a/Lightning.Jobs.html
+++ b/Lightning.Jobs.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Jobs — Lightning v2.10.0
+ Lightning.Jobs — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Jobs
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -308,8 +308,8 @@ change_job(job, attrs \\ %{})
Examples
-iex> change_job(job)
-%Ecto.Changeset{data: %Job{}}
+iex> change_job(job)
+%Ecto.Changeset{data: %Job{}}
@@ -339,11 +339,11 @@ create_job(attrs \\ %{})
Examples
-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{}}
@@ -407,10 +407,10 @@ get_job!(id)
Examples
-iex> get_job!(123)
-%Job{}
+iex> get_job!(123)
+%Job{}
-iex> get_job!(456)
+iex> get_job!(456)
** (Ecto.NoResultsError)
@@ -622,11 +622,11 @@ update_job(job, attrs)
Examples
-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.KafkaTriggers.DuplicateTrackingCleanupWorker.html b/Lightning.KafkaTriggers.DuplicateTrackingCleanupWorker.html
index ffbc257dea..b02947bda1 100644
--- a/Lightning.KafkaTriggers.DuplicateTrackingCleanupWorker.html
+++ b/Lightning.KafkaTriggers.DuplicateTrackingCleanupWorker.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers.DuplicateTrackingCleanupWorker — Lightning v2.10.0
+ Lightning.KafkaTriggers.DuplicateTrackingCleanupWorker — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers.DuplicateTrackingCleanupWorker
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.KafkaTriggers.EventListener.html b/Lightning.KafkaTriggers.EventListener.html
index 7792acfff0..88b5015e23 100644
--- a/Lightning.KafkaTriggers.EventListener.html
+++ b/Lightning.KafkaTriggers.EventListener.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers.EventListener — Lightning v2.10.0
+ Lightning.KafkaTriggers.EventListener — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers.EventListener
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.KafkaTriggers.MessageHandling.html b/Lightning.KafkaTriggers.MessageHandling.html
index e10935e2eb..b7ded640f7 100644
--- a/Lightning.KafkaTriggers.MessageHandling.html
+++ b/Lightning.KafkaTriggers.MessageHandling.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers.MessageHandling — Lightning v2.10.0
+ Lightning.KafkaTriggers.MessageHandling — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers.MessageHandling
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.KafkaTriggers.MessageRecovery.html b/Lightning.KafkaTriggers.MessageRecovery.html
index 5382a5f663..a8beef6e88 100644
--- a/Lightning.KafkaTriggers.MessageRecovery.html
+++ b/Lightning.KafkaTriggers.MessageRecovery.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers.MessageRecovery — Lightning v2.10.0
+ Lightning.KafkaTriggers.MessageRecovery — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers.MessageRecovery
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -153,7 +153,7 @@
an error during reprocessing. These files can be reprocessed if you think the
error was transient.
Usage:
alias Lightning.KafkaTriggers.MessageRecovery
case MessageRecovery.recover_messages(Lightning.Config.kafka_alternate_storage_file_path) do
:ok -> # Success code
-{:error, error_count} -> # Failure code
end
+{:error, error_count} -> # Failure code
end
diff --git a/Lightning.KafkaTriggers.Pipeline.html b/Lightning.KafkaTriggers.Pipeline.html
index 48f04b738a..b388d7cfb3 100644
--- a/Lightning.KafkaTriggers.Pipeline.html
+++ b/Lightning.KafkaTriggers.Pipeline.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers.Pipeline — Lightning v2.10.0
+ Lightning.KafkaTriggers.Pipeline — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers.Pipeline
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.KafkaTriggers.PipelineSupervisor.html b/Lightning.KafkaTriggers.PipelineSupervisor.html
index a34419e141..3f6a16d3be 100644
--- a/Lightning.KafkaTriggers.PipelineSupervisor.html
+++ b/Lightning.KafkaTriggers.PipelineSupervisor.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers.PipelineSupervisor — Lightning v2.10.0
+ Lightning.KafkaTriggers.PipelineSupervisor — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers.PipelineSupervisor
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.KafkaTriggers.Supervisor.html b/Lightning.KafkaTriggers.Supervisor.html
index 1a98020f62..8f9120af62 100644
--- a/Lightning.KafkaTriggers.Supervisor.html
+++ b/Lightning.KafkaTriggers.Supervisor.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers.Supervisor — Lightning v2.10.0
+ Lightning.KafkaTriggers.Supervisor — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers.Supervisor
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.KafkaTriggers.TriggerKafkaMessageRecord.html b/Lightning.KafkaTriggers.TriggerKafkaMessageRecord.html
index 9040acc281..f3b001ea2c 100644
--- a/Lightning.KafkaTriggers.TriggerKafkaMessageRecord.html
+++ b/Lightning.KafkaTriggers.TriggerKafkaMessageRecord.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers.TriggerKafkaMessageRecord — Lightning v2.10.0
+ Lightning.KafkaTriggers.TriggerKafkaMessageRecord — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers.TriggerKafkaMessageRecord
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.KafkaTriggers.html b/Lightning.KafkaTriggers.html
index 324960983d..e7d2408e32 100644
--- a/Lightning.KafkaTriggers.html
+++ b/Lightning.KafkaTriggers.html
@@ -5,16 +5,16 @@
-
+
- Lightning.KafkaTriggers — Lightning v2.10.0
+ Lightning.KafkaTriggers — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.KafkaTriggers
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.LogMessage.html b/Lightning.LogMessage.html
index 774b37555a..56f1cf75b1 100644
--- a/Lightning.LogMessage.html
+++ b/Lightning.LogMessage.html
@@ -5,16 +5,16 @@
-
+
- Lightning.LogMessage — Lightning v2.10.0
+ Lightning.LogMessage — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.LogMessage
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.MetadataService.Error.html b/Lightning.MetadataService.Error.html
index 467cfc3caa..8b08ecabb7 100644
--- a/Lightning.MetadataService.Error.html
+++ b/Lightning.MetadataService.Error.html
@@ -5,16 +5,16 @@
-
+
- Lightning.MetadataService.Error — Lightning v2.10.0
+ Lightning.MetadataService.Error — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.MetadataService.Error exception
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.MetadataService.html b/Lightning.MetadataService.html
index 9e7fcf12de..458ec43c32 100644
--- a/Lightning.MetadataService.html
+++ b/Lightning.MetadataService.html
@@ -5,16 +5,16 @@
-
+
- Lightning.MetadataService — Lightning v2.10.0
+ Lightning.MetadataService — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.MetadataService
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Name.html b/Lightning.Name.html
index 68689ccdfb..b057327d46 100644
--- a/Lightning.Name.html
+++ b/Lightning.Name.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Name — Lightning v2.10.0
+ Lightning.Name — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Name
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.OauthClients.html b/Lightning.OauthClients.html
index cfbcae2a4d..51b63dc687 100644
--- a/Lightning.OauthClients.html
+++ b/Lightning.OauthClients.html
@@ -5,16 +5,16 @@
-
+
- Lightning.OauthClients — Lightning v2.10.0
+ Lightning.OauthClients — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.OauthClients
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -269,8 +269,8 @@ change_client(client, attrs \\ %{})
Examples
-iex> change_client(%OauthClient{}, %{name: "New Client"})
-%Ecto.Changeset{...}
+iex> change_client(%OauthClient{}, %{name: "New Client"})
+%Ecto.Changeset{...}
@@ -355,11 +355,11 @@ delete_client(client)
Examples
-iex> delete_client(client)
-{:ok, %OauthClient{}}
+iex> delete_client(client)
+{:ok, %OauthClient{}}
-iex> delete_client(client)
-{:error, %Ecto.Changeset{}}
+iex> delete_client(client)
+{:error, %Ecto.Changeset{}}
@@ -405,10 +405,10 @@ get_client!(id)
Examples
-iex> get_client!(123)
-%OauthClient{}
+iex> get_client!(123)
+%OauthClient{}
-iex> get_client!(456)
+iex> get_client!(456)
** (Ecto.NoResultsError)
@@ -449,9 +449,9 @@ list_clients(project)
Examples
- When given a Project:
iex> list_clients(%Project{id: 1})
-[%OauthClient{project_id: 1}, %OauthClient{project_id: 1}]
When given a User:
iex> list_clients(%User{id: 123})
-[%OauthClient{user_id: 123}, %OauthClient{user_id: 123}]
+ When given a Project:
iex> list_clients(%Project{id: 1})
+[%OauthClient{project_id: 1}, %OauthClient{project_id: 1}]
When given a User:
iex> list_clients(%User{id: 123})
+[%OauthClient{user_id: 123}, %OauthClient{user_id: 123}]
@@ -491,11 +491,11 @@ update_client(client, attrs)
Examples
-iex> update_client(client, %{field: new_value})
-{:ok, %OauthClient{}}
+iex> update_client(client, %{field: new_value})
+{:ok, %OauthClient{}}
-iex> update_client(client, %{field: bad_value})
-{:error, %Ecto.Changeset{}}
+iex> update_client(client, %{field: bad_value})
+{:error, %Ecto.Changeset{}}
diff --git a/Lightning.ObanManager.html b/Lightning.ObanManager.html
index fac7d99911..f9d485c171 100644
--- a/Lightning.ObanManager.html
+++ b/Lightning.ObanManager.html
@@ -5,16 +5,16 @@
-
+
- Lightning.ObanManager — Lightning v2.10.0
+ Lightning.ObanManager — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.ObanManager
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Policies.Collections.html b/Lightning.Policies.Collections.html
index 48065a0dff..71ae3712be 100644
--- a/Lightning.Policies.Collections.html
+++ b/Lightning.Policies.Collections.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Policies.Collections — Lightning v2.10.0
+ Lightning.Policies.Collections — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Policies.Collections
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Policies.Dataclips.html b/Lightning.Policies.Dataclips.html
index 75c16c7f85..b843bb2422 100644
--- a/Lightning.Policies.Dataclips.html
+++ b/Lightning.Policies.Dataclips.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Policies.Dataclips — Lightning v2.10.0
+ Lightning.Policies.Dataclips — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Policies.Dataclips
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Policies.Exports.html b/Lightning.Policies.Exports.html
index 7b142d7ed4..f961198dd2 100644
--- a/Lightning.Policies.Exports.html
+++ b/Lightning.Policies.Exports.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Policies.Exports — Lightning v2.10.0
+ Lightning.Policies.Exports — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Policies.Exports
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Policies.Permissions.html b/Lightning.Policies.Permissions.html
index c44faaf637..b24d5e0dfa 100644
--- a/Lightning.Policies.Permissions.html
+++ b/Lightning.Policies.Permissions.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Policies.Permissions — Lightning v2.10.0
+ Lightning.Policies.Permissions — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,20 +132,20 @@
Lightning.Policies.Permissions
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
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:
- The
users.ex
file has all the policies for the instances wide access levels - The
project_users.ex
file has all the policies for the project wide access levels - The
permissions.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_workflow = Lightning.Policies.ProjectUsers |> Lightning.Policies.Permissions.can?(:edit_workflow, 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_workflow = Lightning.Policies.ProjectUsers |> Lightning.Policies.Permissions.can?(:edit_workflow, socket.assigns.current_user, socket.assigns.project)
-if can_edit_workflow do
+if can_edit_workflow do
# allow user to edit the workflow
-else
+else
# quick user out
-end
+end
@@ -222,11 +222,11 @@ can(policy, action, user, params \\ [])
Examples
-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}
@@ -256,10 +256,10 @@ can?(policy, action, user, params \\ [])
Examples
-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
diff --git a/Lightning.Policies.ProjectUsers.html b/Lightning.Policies.ProjectUsers.html
index f86646b2a4..d387d49f3b 100644
--- a/Lightning.Policies.ProjectUsers.html
+++ b/Lightning.Policies.ProjectUsers.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Policies.ProjectUsers — Lightning v2.10.0
+ Lightning.Policies.ProjectUsers — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Policies.ProjectUsers
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Policies.Provisioning.html b/Lightning.Policies.Provisioning.html
index 4a433be64d..c699df4cfe 100644
--- a/Lightning.Policies.Provisioning.html
+++ b/Lightning.Policies.Provisioning.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Policies.Provisioning — Lightning v2.10.0
+ Lightning.Policies.Provisioning — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Policies.Provisioning
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Policies.Users.html b/Lightning.Policies.Users.html
index e76f1eab3a..a24f9fa008 100644
--- a/Lightning.Policies.Users.html
+++ b/Lightning.Policies.Users.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Policies.Users — Lightning v2.10.0
+ Lightning.Policies.Users — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Policies.Users
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.Audit.html b/Lightning.Projects.Audit.html
index 56a15ea41b..0955a152f9 100644
--- a/Lightning.Projects.Audit.html
+++ b/Lightning.Projects.Audit.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.Audit — Lightning v2.10.0
+ Lightning.Projects.Audit — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.Audit
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.Events.html b/Lightning.Projects.Events.html
index 62d98196e3..58abaaa93d 100644
--- a/Lightning.Projects.Events.html
+++ b/Lightning.Projects.Events.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.Events — Lightning v2.10.0
+ Lightning.Projects.Events — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.Events
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.File.html b/Lightning.Projects.File.html
index 2461545e8f..8a500240ba 100644
--- a/Lightning.Projects.File.html
+++ b/Lightning.Projects.File.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.File — Lightning v2.10.0
+ Lightning.Projects.File — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.File
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.Project.html b/Lightning.Projects.Project.html
index b8a47c1708..99fcdf1bec 100644
--- a/Lightning.Projects.Project.html
+++ b/Lightning.Projects.Project.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.Project — Lightning v2.10.0
+ Lightning.Projects.Project — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.Project
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.ProjectCredential.html b/Lightning.Projects.ProjectCredential.html
index 30e77e3133..78e59218f3 100644
--- a/Lightning.Projects.ProjectCredential.html
+++ b/Lightning.Projects.ProjectCredential.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.ProjectCredential — Lightning v2.10.0
+ Lightning.Projects.ProjectCredential — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.ProjectCredential
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.ProjectOauthClient.html b/Lightning.Projects.ProjectOauthClient.html
index 83202d1d16..e23e1aeac3 100644
--- a/Lightning.Projects.ProjectOauthClient.html
+++ b/Lightning.Projects.ProjectOauthClient.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.ProjectOauthClient — Lightning v2.10.0
+ Lightning.Projects.ProjectOauthClient — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.ProjectOauthClient
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.ProjectOverviewRow.html b/Lightning.Projects.ProjectOverviewRow.html
index 81c865db4e..67c259cd1f 100644
--- a/Lightning.Projects.ProjectOverviewRow.html
+++ b/Lightning.Projects.ProjectOverviewRow.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.ProjectOverviewRow — Lightning v2.10.0
+ Lightning.Projects.ProjectOverviewRow — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.ProjectOverviewRow
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.ProjectUser.DigestEnum.html b/Lightning.Projects.ProjectUser.DigestEnum.html
index 216bf4686a..dc6b5f1373 100644
--- a/Lightning.Projects.ProjectUser.DigestEnum.html
+++ b/Lightning.Projects.ProjectUser.DigestEnum.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.ProjectUser.DigestEnum — Lightning v2.10.0
+ Lightning.Projects.ProjectUser.DigestEnum — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.ProjectUser.DigestEnum
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.ProjectUser.RolesEnum.html b/Lightning.Projects.ProjectUser.RolesEnum.html
index 625efcca63..62e7b46900 100644
--- a/Lightning.Projects.ProjectUser.RolesEnum.html
+++ b/Lightning.Projects.ProjectUser.RolesEnum.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.ProjectUser.RolesEnum — Lightning v2.10.0
+ Lightning.Projects.ProjectUser.RolesEnum — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.ProjectUser.RolesEnum
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.ProjectUser.html b/Lightning.Projects.ProjectUser.html
index cc26bf141a..f8a3f54757 100644
--- a/Lightning.Projects.ProjectUser.html
+++ b/Lightning.Projects.ProjectUser.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.ProjectUser — Lightning v2.10.0
+ Lightning.Projects.ProjectUser — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.ProjectUser
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.Provisioner.html b/Lightning.Projects.Provisioner.html
index ca118ff871..bb94984402 100644
--- a/Lightning.Projects.Provisioner.html
+++ b/Lightning.Projects.Provisioner.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects.Provisioner — Lightning v2.10.0
+ Lightning.Projects.Provisioner — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects.Provisioner
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Projects.html b/Lightning.Projects.html
index 3aeff84cce..e4ac37ffda 100644
--- a/Lightning.Projects.html
+++ b/Lightning.Projects.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Projects — Lightning v2.10.0
+ Lightning.Projects — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Projects
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -692,8 +692,8 @@ change_project(project, attrs \\ %{})
Examples
-iex> change_project(project)
-%Ecto.Changeset{data: %Project{}}
+iex> change_project(project)
+%Ecto.Changeset{data: %Project{}}
@@ -725,11 +725,11 @@ create_project(attrs \\ %{}, schedule_email
Examples
-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{}}
@@ -758,11 +758,11 @@ delete_project(project)
Examples
-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{}}
@@ -917,8 +917,8 @@ export_project(atom, project_id, snapshot_i
Examples
-iex> export_project(:yaml, project_id)
-{:ok, string}
+iex> export_project(:yaml, project_id)
+{:ok, string}
@@ -990,10 +990,10 @@ get_project!(id)
Examples
-iex> get_project!(123)
-%Project{}
+iex> get_project!(123)
+%Project{}
-iex> get_project!(456)
+iex> get_project!(456)
** (Ecto.NoResultsError)
@@ -1088,10 +1088,10 @@ get_project_user!(id)
Examples
-iex> get_project_user!(123)
-%ProjectUser{}
+iex> get_project_user!(123)
+%ProjectUser{}
-iex> get_project_user!(456)
+iex> get_project_user!(456)
** (Ecto.NoResultsError)
@@ -1121,16 +1121,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
@@ -1181,10 +1181,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)
@@ -1386,8 +1386,8 @@ list_projects()
Examples
-iex> list_projects()
-[%Project{}, ...]
+iex> list_projects()
+[%Project{}, ...]
@@ -1869,11 +1869,11 @@ update_project(project, attrs, user \\ nil)
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{}}
@@ -1901,11 +1901,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{}}
@@ -1964,8 +1964,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.PromEx.html b/Lightning.PromEx.html
index 3a1599679e..f341a46c5b 100644
--- a/Lightning.PromEx.html
+++ b/Lightning.PromEx.html
@@ -5,16 +5,16 @@
-
+
- Lightning.PromEx — Lightning v2.10.0
+ Lightning.PromEx — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.PromEx
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -143,24 +143,24 @@
more details regarding configuring PromEx:config :lightning, Lightning.PromEx,
disabled: false,
manual_metrics_start_delay: :no_delay,
- drop_metrics_groups: [],
+ drop_metrics_groups: [],
grafana: :disabled,
metrics_server: :disabled
Add this module to your application supervision tree. It should be one of the first
things that is started so that no Telemetry events are missed. For example, if PromEx
is started after your Repo module, you will miss Ecto's init events and the dashboards
-will be missing some data points:
def start(_type, _args) do
- children = [
+will be missing some data points:def start(_type, _args) do
+ children = [
Lightning.PromEx,
...
- ]
+ ]
...
-end
Update your endpoint.ex
file to expose your metrics (or configure a standalone
+
end
Update your endpoint.ex
file to expose your metrics (or configure a standalone
server using the :metrics_server
config options). Be sure to put this plug before
your Plug.Telemetry
entry so that you can avoid having calls to your /metrics
endpoint create their own metrics and logs which can pollute your logs/metrics given
-that Prometheus will scrape at a regular interval and that can get noisy:
defmodule LightningWeb.Endpoint do
+that Prometheus will scrape at a regular interval and that can get noisy:defmodule LightningWeb.Endpoint do
use Phoenix.Endpoint, otp_app: :lightning
...
@@ -168,7 +168,7 @@
plug PromEx.Plug, prom_ex_module: Lightning.PromEx
...
-end
Update the list of plugins in the plugins/0
function return list to reflect your
+
end
Update the list of plugins in the plugins/0
function return list to reflect your
application's dependencies. Also update the list of dashboards that are to be uploaded
to Grafana in the dashboards/0
function.
diff --git a/Lightning.Release.html b/Lightning.Release.html
index a4eeda91bc..e80013a766 100644
--- a/Lightning.Release.html
+++ b/Lightning.Release.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Release — Lightning v2.10.0
+ Lightning.Release — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Release
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Repo.html b/Lightning.Repo.html
index 39d51cdc03..0367f40593 100644
--- a/Lightning.Repo.html
+++ b/Lightning.Repo.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Repo — Lightning v2.10.0
+ Lightning.Repo — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Repo
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -1740,13 +1740,13 @@ transact(fun, opts \\ [])
A small wrapper around Repo.transaction/2
.
Commits the transaction if the lambda returns :ok
or {:ok, result}
,
rolling it back if the lambda returns :error
or {:error, reason}
. In both
-cases, the function returns the result of the lambda.
Example:
Repo.transact(fn ->
- with {:ok, user} <- Accounts.create_user(params),
- {:ok, _log} <- Logs.log_action(:user_registered, user),
- {:ok, _job} <- Mailer.enqueue_email_confirmation(user) do
- {:ok, user}
- end
-end)
From blog post found here
+cases, the function returns the result of the lambda.Example:
Repo.transact(fn ->
+ with {:ok, user} <- Accounts.create_user(params),
+ {:ok, _log} <- Logs.log_action(:user_registered, user),
+ {:ok, _job} <- Mailer.enqueue_email_confirmation(user) do
+ {:ok, user}
+ end
+end)
From blog post found here
diff --git a/Lightning.Run.html b/Lightning.Run.html
index 2516679c78..76fdd4f6d5 100644
--- a/Lightning.Run.html
+++ b/Lightning.Run.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Run — Lightning v2.10.0
+ Lightning.Run — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Run
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.RunStep.html b/Lightning.RunStep.html
index f8425df8f9..c8229bba12 100644
--- a/Lightning.RunStep.html
+++ b/Lightning.RunStep.html
@@ -5,16 +5,16 @@
-
+
- Lightning.RunStep — Lightning v2.10.0
+ Lightning.RunStep — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.RunStep
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.Events.html b/Lightning.Runs.Events.html
index 9363db95ec..5fa7f5fc25 100644
--- a/Lightning.Runs.Events.html
+++ b/Lightning.Runs.Events.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.Events — Lightning v2.10.0
+ Lightning.Runs.Events — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.Events
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.Handlers.CompleteRun.html b/Lightning.Runs.Handlers.CompleteRun.html
index 2428a16bf2..4a7766bff1 100644
--- a/Lightning.Runs.Handlers.CompleteRun.html
+++ b/Lightning.Runs.Handlers.CompleteRun.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.Handlers.CompleteRun — Lightning v2.10.0
+ Lightning.Runs.Handlers.CompleteRun — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.Handlers.CompleteRun
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.Handlers.CompleteStep.html b/Lightning.Runs.Handlers.CompleteStep.html
index 8455d7cc6b..c30ab965be 100644
--- a/Lightning.Runs.Handlers.CompleteStep.html
+++ b/Lightning.Runs.Handlers.CompleteStep.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.Handlers.CompleteStep — Lightning v2.10.0
+ Lightning.Runs.Handlers.CompleteStep — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.Handlers.CompleteStep
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.Handlers.StartRun.html b/Lightning.Runs.Handlers.StartRun.html
index 9cc7a077d9..d780f85d53 100644
--- a/Lightning.Runs.Handlers.StartRun.html
+++ b/Lightning.Runs.Handlers.StartRun.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.Handlers.StartRun — Lightning v2.10.0
+ Lightning.Runs.Handlers.StartRun — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.Handlers.StartRun
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.Handlers.StartStep.html b/Lightning.Runs.Handlers.StartStep.html
index d8426abb9f..d637ea76db 100644
--- a/Lightning.Runs.Handlers.StartStep.html
+++ b/Lightning.Runs.Handlers.StartStep.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.Handlers.StartStep — Lightning v2.10.0
+ Lightning.Runs.Handlers.StartStep — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.Handlers.StartStep
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.Handlers.html b/Lightning.Runs.Handlers.html
index cd56291547..87d6e7fbf0 100644
--- a/Lightning.Runs.Handlers.html
+++ b/Lightning.Runs.Handlers.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.Handlers — Lightning v2.10.0
+ Lightning.Runs.Handlers — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.Handlers
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.PromExPlugin.html b/Lightning.Runs.PromExPlugin.html
index c9a67c5ce6..daba36ac22 100644
--- a/Lightning.Runs.PromExPlugin.html
+++ b/Lightning.Runs.PromExPlugin.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.PromExPlugin — Lightning v2.10.0
+ Lightning.Runs.PromExPlugin — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.PromExPlugin
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.Query.html b/Lightning.Runs.Query.html
index 53d8ae372c..a0dda83a41 100644
--- a/Lightning.Runs.Query.html
+++ b/Lightning.Runs.Query.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.Query — Lightning v2.10.0
+ Lightning.Runs.Query — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.Query
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -243,7 +243,7 @@ eligible_for_claim()
This query does not currently take into account the priority of the run.
To allow for prioritization, the query should be updated to order by
-priority.
eligible_for_claim() |> prepend_order_by([:priority])
+priority.eligible_for_claim() |> prepend_order_by([:priority])
diff --git a/Lightning.Runs.Queue.html b/Lightning.Runs.Queue.html
index cc42176968..30f6196213 100644
--- a/Lightning.Runs.Queue.html
+++ b/Lightning.Runs.Queue.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.Queue — Lightning v2.10.0
+ Lightning.Runs.Queue — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.Queue
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.RunOptions.html b/Lightning.Runs.RunOptions.html
index 1377ceca5a..8869965bb0 100644
--- a/Lightning.Runs.RunOptions.html
+++ b/Lightning.Runs.RunOptions.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs.RunOptions — Lightning v2.10.0
+ Lightning.Runs.RunOptions — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs.RunOptions
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runs.html b/Lightning.Runs.html
index 35e2bfc43c..9b052fc9a0 100644
--- a/Lightning.Runs.html
+++ b/Lightning.Runs.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runs — Lightning v2.10.0
+ Lightning.Runs — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runs
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -479,7 +479,7 @@ get(id, opts \\ [])
-Get a run by id.
Optionally preload associations by passing a list of atoms to :include
.
Lightning.Runs.get(id, include: [:workflow])
+Get a run by id.
Optionally preload associations by passing a list of atoms to :include
.
Lightning.Runs.get(id, include: [:workflow])
diff --git a/Lightning.Runtime.LogAgent.StringBuffer.html b/Lightning.Runtime.LogAgent.StringBuffer.html
index 645c57d93b..b7aa6091e2 100644
--- a/Lightning.Runtime.LogAgent.StringBuffer.html
+++ b/Lightning.Runtime.LogAgent.StringBuffer.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runtime.LogAgent.StringBuffer — Lightning v2.10.0
+ Lightning.Runtime.LogAgent.StringBuffer — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runtime.LogAgent.StringBuffer
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runtime.LogAgent.html b/Lightning.Runtime.LogAgent.html
index d01ceda92a..2b9d356995 100644
--- a/Lightning.Runtime.LogAgent.html
+++ b/Lightning.Runtime.LogAgent.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runtime.LogAgent — Lightning v2.10.0
+ Lightning.Runtime.LogAgent — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,16 +132,16 @@
Lightning.Runtime.LogAgent
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
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.Runtime.RuntimeManager.RuntimeClient.html b/Lightning.Runtime.RuntimeManager.RuntimeClient.html
index 45a764aa6b..f041a683d1 100644
--- a/Lightning.Runtime.RuntimeManager.RuntimeClient.html
+++ b/Lightning.Runtime.RuntimeManager.RuntimeClient.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runtime.RuntimeManager.RuntimeClient — Lightning v2.10.0
+ Lightning.Runtime.RuntimeManager.RuntimeClient — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runtime.RuntimeManager.RuntimeClient behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Runtime.RuntimeManager.html b/Lightning.Runtime.RuntimeManager.html
index 9e7e85a52a..27e9260f53 100644
--- a/Lightning.Runtime.RuntimeManager.html
+++ b/Lightning.Runtime.RuntimeManager.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Runtime.RuntimeManager — Lightning v2.10.0
+ Lightning.Runtime.RuntimeManager — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Runtime.RuntimeManager
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -147,8 +147,8 @@
Sample:
config :lightining, Elixir.Lightning.Runtime.RuntimeManager,
version: "0.1.0",
start: true,
args: ~w(js/app.js --bundle --target=es2016 --outdir=../priv/static/assets),
-cd: Path.expand("../assets", __DIR__),
-env: %{}
Options:
:version
- the expected runtime version
:start
- flag to start the runtime manager. If false
the GenServer
+
cd: Path.expand("../assets", __DIR__),
+env: %{}
Options:
:version
- the expected runtime version
:start
- flag to start the runtime manager. If false
the GenServer
won't be started
:path
- the path to find the runtime executable at. By
default, it is automatically downloaded and placed inside
the _build
directory of your current app
Overriding the :path
is not recommended, as we will automatically
diff --git a/Lightning.SafetyString.html b/Lightning.SafetyString.html
index 176d348823..a70a8a8f79 100644
--- a/Lightning.SafetyString.html
+++ b/Lightning.SafetyString.html
@@ -5,16 +5,16 @@
-
+
-
Lightning.SafetyString — Lightning v2.10.0
+ Lightning.SafetyString — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.SafetyString
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Schema.html b/Lightning.Schema.html
index 3ddec43474..0d8b1e3f76 100644
--- a/Lightning.Schema.html
+++ b/Lightning.Schema.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Schema — Lightning v2.10.0
+ Lightning.Schema — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Schema
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Scrubber.html b/Lightning.Scrubber.html
index 3d921d2bb8..b1bf70606a 100644
--- a/Lightning.Scrubber.html
+++ b/Lightning.Scrubber.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Scrubber — Lightning v2.10.0
+ Lightning.Scrubber — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,17 +132,17 @@
Lightning.Scrubber
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
-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.Services.AccountHook.html b/Lightning.Services.AccountHook.html
index 84775fd8dc..e236871645 100644
--- a/Lightning.Services.AccountHook.html
+++ b/Lightning.Services.AccountHook.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Services.AccountHook — Lightning v2.10.0
+ Lightning.Services.AccountHook — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Services.AccountHook
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Services.AdapterHelper.html b/Lightning.Services.AdapterHelper.html
index 356bf8f0b7..0a2560a3aa 100644
--- a/Lightning.Services.AdapterHelper.html
+++ b/Lightning.Services.AdapterHelper.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Services.AdapterHelper — Lightning v2.10.0
+ Lightning.Services.AdapterHelper — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Services.AdapterHelper
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Services.ProjectHook.html b/Lightning.Services.ProjectHook.html
index dccc8f1d74..1ef911a8e1 100644
--- a/Lightning.Services.ProjectHook.html
+++ b/Lightning.Services.ProjectHook.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Services.ProjectHook — Lightning v2.10.0
+ Lightning.Services.ProjectHook — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Services.ProjectHook
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Services.RateLimiter.html b/Lightning.Services.RateLimiter.html
index a946da4a6b..cd02466608 100644
--- a/Lightning.Services.RateLimiter.html
+++ b/Lightning.Services.RateLimiter.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Services.RateLimiter — Lightning v2.10.0
+ Lightning.Services.RateLimiter — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Services.RateLimiter
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Services.RunQueue.html b/Lightning.Services.RunQueue.html
index a17211022c..aeaa00a9e2 100644
--- a/Lightning.Services.RunQueue.html
+++ b/Lightning.Services.RunQueue.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Services.RunQueue — Lightning v2.10.0
+ Lightning.Services.RunQueue — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Services.RunQueue
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Services.UsageLimiter.html b/Lightning.Services.UsageLimiter.html
index e95d0f2784..09908bae8b 100644
--- a/Lightning.Services.UsageLimiter.html
+++ b/Lightning.Services.UsageLimiter.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Services.UsageLimiter — Lightning v2.10.0
+ Lightning.Services.UsageLimiter — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Services.UsageLimiter
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Setup.html b/Lightning.Setup.html
index b63ce97eb3..1e890e599d 100644
--- a/Lightning.Setup.html
+++ b/Lightning.Setup.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Setup — Lightning v2.10.0
+ Lightning.Setup — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Setup
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.SetupUtils.Ticker.html b/Lightning.SetupUtils.Ticker.html
index e839dc1fb1..a3a201f9c1 100644
--- a/Lightning.SetupUtils.Ticker.html
+++ b/Lightning.SetupUtils.Ticker.html
@@ -5,16 +5,16 @@
-
+
- Lightning.SetupUtils.Ticker — Lightning v2.10.0
+ Lightning.SetupUtils.Ticker — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.SetupUtils.Ticker
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.SetupUtils.html b/Lightning.SetupUtils.html
index 1ccdfec2ee..849f16f2dc 100644
--- a/Lightning.SetupUtils.html
+++ b/Lightning.SetupUtils.html
@@ -5,16 +5,16 @@
-
+
- Lightning.SetupUtils — Lightning v2.10.0
+ Lightning.SetupUtils — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.SetupUtils
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Storage.Backend.html b/Lightning.Storage.Backend.html
index 24d539301a..a66ff52ae9 100644
--- a/Lightning.Storage.Backend.html
+++ b/Lightning.Storage.Backend.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Storage.Backend — Lightning v2.10.0
+ Lightning.Storage.Backend — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Storage.Backend behaviour
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Storage.GCS.html b/Lightning.Storage.GCS.html
index 0f4d76446c..51b5676300 100644
--- a/Lightning.Storage.GCS.html
+++ b/Lightning.Storage.GCS.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Storage.GCS — Lightning v2.10.0
+ Lightning.Storage.GCS — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Storage.GCS
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -151,10 +151,10 @@
Example Usage
# Store a file in GCS
-Lightning.Storage.GCS.store("/path/to/source", "destination/path")
+Lightning.Storage.GCS.store("/path/to/source", "destination/path")
# Get a signed URL for the stored file
-{:ok, url} = Lightning.Storage.GCS.get_url("destination/path")
+
{:ok, url} = Lightning.Storage.GCS.get_url("destination/path")
diff --git a/Lightning.Storage.Local.html b/Lightning.Storage.Local.html
index c1675d0015..cbf1dc0b49 100644
--- a/Lightning.Storage.Local.html
+++ b/Lightning.Storage.Local.html
@@ -5,16 +5,16 @@
-
+
- # Store a file
-{:ok, filename} =
- Lightning.Storage.Local.store("/path/to/source", "destination/path")
+{:ok, filename} =
+ Lightning.Storage.Local.store("/path/to/source", "destination/path")
# Get the URL for the stored file
-{:ok, url} = Lightning.Storage.Local.get_url("destination/path")
+{:ok, url} = Lightning.Storage.Local.get_url("destination/path")
diff --git a/Lightning.Storage.ProjectFileDefinition.html b/Lightning.Storage.ProjectFileDefinition.html
index c00e102669..f2417d0bea 100644
--- a/Lightning.Storage.ProjectFileDefinition.html
+++ b/Lightning.Storage.ProjectFileDefinition.html
@@ -5,16 +5,16 @@
-
+
- This module provides functionality for managing the storage and retrieval of project files.
It handles operations related to storing project files, generating URLs for accessing these files, and constructing storage paths for exported files. It serves as an abstraction layer over the underlying storage mechanism provided by the Lightning.Storage
module.
## Functions
store/2
: Stores a file from a given source path into the storage system based on the file's path.get_url/1
: Retrieves the URL for accessing a stored file.storage_path_for_exports/2
: Constructs a storage path for exported files, defaulting to a .zip
extension.## Example Usage
# Store a file
- Lightning.Storage.ProjectFileDefinition.store("/path/to/source", project_file)
+ Lightning.Storage.ProjectFileDefinition.store("/path/to/source", project_file)
# Get a URL for the stored file
- url = Lightning.Storage.ProjectFileDefinition.get_url(project_file)
+ url = Lightning.Storage.ProjectFileDefinition.get_url(project_file)
# Get the storage path for an exported file
- path = Lightning.Storage.ProjectFileDefinition.storage_path_for_exports(project_file)
+ path = Lightning.Storage.ProjectFileDefinition.storage_path_for_exports(project_file)
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.Options
:max_tasks
Defaults to the number of system schedulers available to the vm.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"
-)
+)
Perform a DELETE request.
See request/1
or request/2
for options definition.
delete("/users")
-delete("/users", query: [scope: "admin"])
-delete(client, "/users")
-delete(client, "/users", query: [scope: "admin"])
-delete(client, "/users", body: %{name: "Jon"})
+Perform a DELETE request.
See request/1
or request/2
for options definition.
delete("/users")
+delete("/users", query: [scope: "admin"])
+delete(client, "/users")
+delete(client, "/users", query: [scope: "admin"])
+delete(client, "/users", body: %{name: "Jon"})
Perform a DELETE request.
See request!/1
or request!/2
for options definition.
delete!("/users")
-delete!("/users", query: [scope: "admin"])
-delete!(client, "/users")
-delete!(client, "/users", query: [scope: "admin"])
-delete!(client, "/users", body: %{name: "Jon"})
+Perform a DELETE request.
See request!/1
or request!/2
for options definition.
delete!("/users")
+delete!("/users", query: [scope: "admin"])
+delete!(client, "/users")
+delete!(client, "/users", query: [scope: "admin"])
+delete!(client, "/users", body: %{name: "Jon"})
Perform a GET request.
See request/1
or request/2
for options definition.
get("/users")
-get("/users", query: [scope: "admin"])
-get(client, "/users")
-get(client, "/users", query: [scope: "admin"])
-get(client, "/users", body: %{name: "Jon"})
+Perform a GET request.
See request/1
or request/2
for options definition.
get("/users")
+get("/users", query: [scope: "admin"])
+get(client, "/users")
+get(client, "/users", query: [scope: "admin"])
+get(client, "/users", body: %{name: "Jon"})
Perform a GET request.
See request!/1
or request!/2
for options definition.
get!("/users")
-get!("/users", query: [scope: "admin"])
-get!(client, "/users")
-get!(client, "/users", query: [scope: "admin"])
-get!(client, "/users", body: %{name: "Jon"})
+Perform a GET request.
See request!/1
or request!/2
for options definition.
get!("/users")
+get!("/users", query: [scope: "admin"])
+get!(client, "/users")
+get!(client, "/users", query: [scope: "admin"])
+get!(client, "/users", body: %{name: "Jon"})
Perform a HEAD request.
See request/1
or request/2
for options definition.
head("/users")
-head("/users", query: [scope: "admin"])
-head(client, "/users")
-head(client, "/users", query: [scope: "admin"])
-head(client, "/users", body: %{name: "Jon"})
+Perform a HEAD request.
See request/1
or request/2
for options definition.
head("/users")
+head("/users", query: [scope: "admin"])
+head(client, "/users")
+head(client, "/users", query: [scope: "admin"])
+head(client, "/users", body: %{name: "Jon"})
Perform a HEAD request.
See request!/1
or request!/2
for options definition.
head!("/users")
-head!("/users", query: [scope: "admin"])
-head!(client, "/users")
-head!(client, "/users", query: [scope: "admin"])
-head!(client, "/users", body: %{name: "Jon"})
+Perform a HEAD request.
See request!/1
or request!/2
for options definition.
head!("/users")
+head!("/users", query: [scope: "admin"])
+head!(client, "/users")
+head!(client, "/users", query: [scope: "admin"])
+head!(client, "/users", body: %{name: "Jon"})
Perform a OPTIONS request.
See request/1
or request/2
for options definition.
options("/users")
-options("/users", query: [scope: "admin"])
-options(client, "/users")
-options(client, "/users", query: [scope: "admin"])
-options(client, "/users", body: %{name: "Jon"})
+Perform a OPTIONS request.
See request/1
or request/2
for options definition.
options("/users")
+options("/users", query: [scope: "admin"])
+options(client, "/users")
+options(client, "/users", query: [scope: "admin"])
+options(client, "/users", body: %{name: "Jon"})
Perform a OPTIONS request.
See request!/1
or request!/2
for options definition.
options!("/users")
-options!("/users", query: [scope: "admin"])
-options!(client, "/users")
-options!(client, "/users", query: [scope: "admin"])
-options!(client, "/users", body: %{name: "Jon"})
+Perform a OPTIONS request.
See request!/1
or request!/2
for options definition.
options!("/users")
+options!("/users", query: [scope: "admin"])
+options!(client, "/users")
+options!(client, "/users", query: [scope: "admin"])
+options!(client, "/users", body: %{name: "Jon"})
Perform a PATCH request.
See request/1
or request/2
for options definition.
patch("/users", %{name: "Jon"})
-patch("/users", %{name: "Jon"}, query: [scope: "admin"])
-patch(client, "/users", %{name: "Jon"})
-patch(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
+Perform a PATCH request.
See request/1
or request/2
for options definition.
patch("/users", %{name: "Jon"})
+patch("/users", %{name: "Jon"}, query: [scope: "admin"])
+patch(client, "/users", %{name: "Jon"})
+patch(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
Perform a PATCH request.
See request!/1
or request!/2
for options definition.
patch!("/users", %{name: "Jon"})
-patch!("/users", %{name: "Jon"}, query: [scope: "admin"])
-patch!(client, "/users", %{name: "Jon"})
-patch!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
+Perform a PATCH request.
See request!/1
or request!/2
for options definition.
patch!("/users", %{name: "Jon"})
+patch!("/users", %{name: "Jon"}, query: [scope: "admin"])
+patch!(client, "/users", %{name: "Jon"})
+patch!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
Perform a POST request.
See request/1
or request/2
for options definition.
post("/users", %{name: "Jon"})
-post("/users", %{name: "Jon"}, query: [scope: "admin"])
-post(client, "/users", %{name: "Jon"})
-post(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
+Perform a POST request.
See request/1
or request/2
for options definition.
post("/users", %{name: "Jon"})
+post("/users", %{name: "Jon"}, query: [scope: "admin"])
+post(client, "/users", %{name: "Jon"})
+post(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
Perform a POST request.
See request!/1
or request!/2
for options definition.
post!("/users", %{name: "Jon"})
-post!("/users", %{name: "Jon"}, query: [scope: "admin"])
-post!(client, "/users", %{name: "Jon"})
-post!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
+Perform a POST request.
See request!/1
or request!/2
for options definition.
post!("/users", %{name: "Jon"})
+post!("/users", %{name: "Jon"}, query: [scope: "admin"])
+post!(client, "/users", %{name: "Jon"})
+post!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
Perform a PUT request.
See request/1
or request/2
for options definition.
put("/users", %{name: "Jon"})
-put("/users", %{name: "Jon"}, query: [scope: "admin"])
-put(client, "/users", %{name: "Jon"})
-put(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
+Perform a PUT request.
See request/1
or request/2
for options definition.
put("/users", %{name: "Jon"})
+put("/users", %{name: "Jon"}, query: [scope: "admin"])
+put(client, "/users", %{name: "Jon"})
+put(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
Perform a PUT request.
See request!/1
or request!/2
for options definition.
put!("/users", %{name: "Jon"})
-put!("/users", %{name: "Jon"}, query: [scope: "admin"])
-put!(client, "/users", %{name: "Jon"})
-put!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
+Perform a PUT request.
See request!/1
or request!/2
for options definition.
put!("/users", %{name: "Jon"})
+put!("/users", %{name: "Jon"}, query: [scope: "admin"])
+put!(client, "/users", %{name: "Jon"})
+put!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
ExampleApi.request(method: :get, url: "/users/path")
+ExampleApi.request(method: :get, url: "/users/path")
# use shortcut methods
-ExampleApi.get("/users/1")
-ExampleApi.post(client, "/users", %{name: "Jon"})
+ExampleApi.get("/users/1")
+ExampleApi.post(client, "/users", %{name: "Jon"})
Perform a TRACE request.
See request/1
or request/2
for options definition.
trace("/users")
-trace("/users", query: [scope: "admin"])
-trace(client, "/users")
-trace(client, "/users", query: [scope: "admin"])
-trace(client, "/users", body: %{name: "Jon"})
+Perform a TRACE request.
See request/1
or request/2
for options definition.
trace("/users")
+trace("/users", query: [scope: "admin"])
+trace(client, "/users")
+trace(client, "/users", query: [scope: "admin"])
+trace(client, "/users", body: %{name: "Jon"})
Perform a TRACE request.
See request!/1
or request!/2
for options definition.
trace!("/users")
-trace!("/users", query: [scope: "admin"])
-trace!(client, "/users")
-trace!(client, "/users", query: [scope: "admin"])
-trace!(client, "/users", body: %{name: "Jon"})
+Perform a TRACE request.
See request!/1
or request!/2
for options definition.
trace!("/users")
+trace!("/users", query: [scope: "admin"])
+trace!(client, "/users")
+trace!(client, "/users", query: [scope: "admin"])
+trace!(client, "/users", body: %{name: "Jon"})
Creating a WebhookAuthMethod
without an associated trigger:
iex> create_auth_method(%{valid_attributes}, actor: %User{})
-{:ok, %WebhookAuthMethod{}}
+Creating a WebhookAuthMethod
without an associated trigger:
iex> create_auth_method(%{valid_attributes}, actor: %User{})
+{:ok, %WebhookAuthMethod{}}
-iex> create_auth_method(%{invalid_attributes}, actor: %User{})
-{:error, %Ecto.Changeset{}}
Creating a WebhookAuthMethod
with an associated trigger:
iex> create_auth_method(%Trigger{}, %{valid_attributes}, actor: %User{})
-{:ok, %WebhookAuthMethod{}}
+iex> create_auth_method(%{invalid_attributes}, actor: %User{})
+{:error, %Ecto.Changeset{}}
Creating a WebhookAuthMethod
with an associated trigger:
iex> create_auth_method(%Trigger{}, %{valid_attributes}, actor: %User{})
+{:ok, %WebhookAuthMethod{}}
-iex> create_auth_method(%Trigger{}, %{invalid_attributes}, actor: %User{})
-{:error, %Ecto.Changeset{}}
+
iex> create_auth_method(%Trigger{}, %{invalid_attributes}, actor: %User{})
+{:error, %Ecto.Changeset{}}
Creating a changeset for an API type auth method:
iex> Lightning.Workflows.create_changeset(%WebhookAuthMethod{auth_type: :api}, %{})
-%WebhookAuthMethod{api_key: some_new_api_key}
Creating a changeset for a non-API type auth method:
iex> Lightning.Workflows.create_changeset(%WebhookAuthMethod{auth_type: :other}, %{})
-%WebhookAuthMethod{}
Creating a changeset for an API type auth method:
iex> Lightning.Workflows.create_changeset(%WebhookAuthMethod{auth_type: :api}, %{})
+%WebhookAuthMethod{api_key: some_new_api_key}
Creating a changeset for a non-API type auth method:
iex> Lightning.Workflows.create_changeset(%WebhookAuthMethod{auth_type: :other}, %{})
+%WebhookAuthMethod{}
Successful deletion:
iex> delete_auth_method(%WebhookAuthMethod{id: "some_id"})
-{:ok, %WebhookAuthMethod{}}
Deletion fails due to the item not existing or other conflict:
iex> delete_auth_method(%WebhookAuthMethod{id: "non_existing_id"})
-{:error, reason}
Successful deletion:
iex> delete_auth_method(%WebhookAuthMethod{id: "some_id"})
+{:ok, %WebhookAuthMethod{}}
Deletion fails due to the item not existing or other conflict:
iex> delete_auth_method(%WebhookAuthMethod{id: "non_existing_id"})
+{:error, reason}
When a matching WebhookAuthMethod
is found:
iex> Lightning.Workflows.find_by_api_key("existing_api_key", %Project{id: "existing_project_id"})
-%WebhookAuthMethod{}
When there is no matching WebhookAuthMethod
:
iex> Lightning.Workflows.find_by_api_key("non_existing_api_key", %Project{id: "existing_project_id"})
+When a matching WebhookAuthMethod
is found:
iex> Lightning.Workflows.find_by_api_key("existing_api_key", %Project{id: "existing_project_id"})
+%WebhookAuthMethod{}
When there is no matching WebhookAuthMethod
:
iex> Lightning.Workflows.find_by_api_key("non_existing_api_key", %Project{id: "existing_project_id"})
nil
When a WebhookAuthMethod
with the given ID exists:
iex> Lightning.Workflows.find_by_id!("existing_id")
-%WebhookAuthMethod{}
When there is no WebhookAuthMethod
with the given ID:
iex> Lightning.Workflows.find_by_id!("non_existing_id")
+When a WebhookAuthMethod
with the given ID exists:
iex> Lightning.Workflows.find_by_id!("existing_id")
+%WebhookAuthMethod{}
When there is no WebhookAuthMethod
with the given ID:
iex> Lightning.Workflows.find_by_id!("non_existing_id")
** (Ecto.NoResultsError)
@@ -654,8 +654,8 @@ find_by_username_and_password(username, pas
Examples
-When a matching WebhookAuthMethod
is found and the password is valid:
iex> Lightning.Workflows.find_by_username_and_password("existing_username", "valid_password", %Project{id: "existing_project_id"})
-%WebhookAuthMethod{}
When the username is found but the password is invalid or no matching record is found:
iex> Lightning.Workflows.find_by_username_and_password("existing_username", "invalid_password", %Project{id: "existing_project_id"})
+When a matching WebhookAuthMethod
is found and the password is valid:
iex> Lightning.Workflows.find_by_username_and_password("existing_username", "valid_password", %Project{id: "existing_project_id"})
+%WebhookAuthMethod{}
When the username is found but the password is invalid or no matching record is found:
iex> Lightning.Workflows.find_by_username_and_password("existing_username", "invalid_password", %Project{id: "existing_project_id"})
nil
@@ -704,9 +704,9 @@ list_for_project(project)
Examples
-When the project exists and has associated auth methods:
iex> list_for_project(%Project{id: "existing_project_id"})
-[%WebhookAuthMethod{}, ...]
When the project does not exist or has no associated auth methods:
iex> list_for_project(%Project{id: "non_existing_project_id"})
-[]
+When the project exists and has associated auth methods:
iex> list_for_project(%Project{id: "existing_project_id"})
+[%WebhookAuthMethod{}, ...]
When the project does not exist or has no associated auth methods:
iex> list_for_project(%Project{id: "non_existing_project_id"})
+[]
@@ -754,9 +754,9 @@ list_for_trigger(trigger)
Examples
-When the Trigger
has associated WebhookAuthMethod
s not scheduled for deletion:
iex> Lightning.Workflows.list_for_trigger(%Trigger{id: "existing_trigger_id"})
-[%WebhookAuthMethod{}, ...]
When the Trigger
has no associated WebhookAuthMethod
s or they are all scheduled for deletion:
iex> Lightning.Workflows.list_for_trigger(%Trigger{id: "trigger_without_methods"})
-[]
+When the Trigger
has associated WebhookAuthMethod
s not scheduled for deletion:
iex> Lightning.Workflows.list_for_trigger(%Trigger{id: "existing_trigger_id"})
+[%WebhookAuthMethod{}, ...]
When the Trigger
has no associated WebhookAuthMethod
s or they are all scheduled for deletion:
iex> Lightning.Workflows.list_for_trigger(%Trigger{id: "trigger_without_methods"})
+[]
@@ -809,10 +809,10 @@ perform(job)
Example
-%Oban.Job{
-args: %{"type" => "purge_deleted"}
-}
-|> MyModule.perform()
+%Oban.Job{
+args: %{"type" => "purge_deleted"}
+}
+|> MyModule.perform()
# => {:ok, %{disassociated_count: 2, deleted_count: 2}}
@@ -866,9 +866,9 @@ schedule_for_deletion(webhook_auth_method,
Examples
-When a webhook auth method is successfully scheduled for deletion:
iex> Lightning.Workflows.schedule_for_deletion(%WebhookAuthMethod{id: some_id})
-{:ok, %WebhookAuthMethod{scheduled_deletion: deletion_date}}
When scheduling for deletion fails due to validation errors:
iex> Lightning.Workflows.schedule_for_deletion(%WebhookAuthMethod{})
-{:error, %Ecto.Changeset{}}
+When a webhook auth method is successfully scheduled for deletion:
iex> Lightning.Workflows.schedule_for_deletion(%WebhookAuthMethod{id: some_id})
+{:ok, %WebhookAuthMethod{scheduled_deletion: deletion_date}}
When scheduling for deletion fails due to validation errors:
iex> Lightning.Workflows.schedule_for_deletion(%WebhookAuthMethod{})
+{:error, %Ecto.Changeset{}}
@@ -918,9 +918,9 @@ update_auth_method(webhook_auth_method, att
Examples
-Successful update:
iex> update_auth_method(webhook_auth_method, %{field: new_value}, actor: %User{})
-{:ok, %WebhookAuthMethod{}}
Update fails due to invalid data:
iex> update_auth_method(webhook_auth_method, %{field: bad_value}, actor: %User{})
-{:error, %Ecto.Changeset{}}
+Successful update:
iex> update_auth_method(webhook_auth_method, %{field: new_value}, actor: %User{})
+{:ok, %WebhookAuthMethod{}}
Update fails due to invalid data:
iex> update_auth_method(webhook_auth_method, %{field: bad_value}, actor: %User{})
+{:error, %Ecto.Changeset{}}
@@ -976,9 +976,9 @@ update_trigger_auth_methods(trigger, auth_m
Examples
-Successful association update:
iex> update_trigger_auth_methods(trigger, [webhook_auth_method], actor: %User{})
-{:ok, %Trigger{}}
Update fails due to an invalid changeset:
iex> update_trigger_auth_methods(trigger, [invalid_webhook_auth_method], actor: %User{})
-{:error, %Ecto.Changeset{}}
+Successful association update:
iex> update_trigger_auth_methods(trigger, [webhook_auth_method], actor: %User{})
+{:ok, %Trigger{}}
Update fails due to an invalid changeset:
iex> update_trigger_auth_methods(trigger, [invalid_webhook_auth_method], actor: %User{})
+{:error, %Ecto.Changeset{}}
diff --git a/Lightning.WorkOrder.html b/Lightning.WorkOrder.html
index f58fd14ef2..b28d7e6bae 100644
--- a/Lightning.WorkOrder.html
+++ b/Lightning.WorkOrder.html
@@ -5,16 +5,16 @@
-
+
- Lightning.WorkOrder — Lightning v2.10.0
+ Lightning.WorkOrder — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.WorkOrder
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.WorkOrders.ExportWorker.html b/Lightning.WorkOrders.ExportWorker.html
index ebe43e22a1..942ecc89ea 100644
--- a/Lightning.WorkOrders.ExportWorker.html
+++ b/Lightning.WorkOrders.ExportWorker.html
@@ -5,16 +5,16 @@
-
+
- Lightning.WorkOrders.ExportWorker — Lightning v2.10.0
+ Lightning.WorkOrders.ExportWorker — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,14 +132,14 @@
Lightning.WorkOrders.ExportWorker
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
This module handles the export of work orders for a given project. The export process is performed asynchronously using the Oban background job system.
## Responsibilities
- Enqueueing Export Jobs: The
enqueue_export/2
function creates and enqueues an Oban job for exporting work orders based on the given project and search parameters. - Processing Exports: The
perform/1
function is the main entry point for executing the export job. It retrieves the project, processes work orders, and handles the export process. - Export Logic: The export logic involves querying work orders, extracting relevant entities, processing logs and dataclips asynchronously, and writing the final export data to files.
- Error Handling: The module includes comprehensive error handling and logging to ensure that issues during the export process are recorded and can be diagnosed.
- Zip File Creation: After processing, the exported files are compressed into a zip file for easy download or further use.
## Usage
- To enqueue an export job, call
enqueue_export/2
with the project and search parameters. - The export process is triggered by Oban and runs in the
history_exports
queue, limited to a single attempt per job.
## Example
# Enqueue an export job
- Lightning.WorkOrders.ExportWorker.enqueue_export(project, search_params)
+ Lightning.WorkOrders.ExportWorker.enqueue_export(project, search_params)
# The job will run in the background and log the status of the export process.
This module is designed to handle potentially large datasets efficiently by using streaming, async processing, and error recovery mechanisms.
diff --git a/Lightning.WorkOrders.Manual.html b/Lightning.WorkOrders.Manual.html
index 634edfe7a0..d4307af675 100644
--- a/Lightning.WorkOrders.Manual.html
+++ b/Lightning.WorkOrders.Manual.html
@@ -5,16 +5,16 @@
-
+
- Lightning.WorkOrders.Manual — Lightning v2.10.0
+ Lightning.WorkOrders.Manual — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.WorkOrders.Manual
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.WorkOrders.Query.html b/Lightning.WorkOrders.Query.html
index b02b972b06..5dadca71c3 100644
--- a/Lightning.WorkOrders.Query.html
+++ b/Lightning.WorkOrders.Query.html
@@ -5,16 +5,16 @@
-
+
- Lightning.WorkOrders.Query — Lightning v2.10.0
+ Lightning.WorkOrders.Query — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.WorkOrders.Query
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.WorkOrders.RetryManyWorkOrdersJob.html b/Lightning.WorkOrders.RetryManyWorkOrdersJob.html
index 8e2b9538a8..eb0fb9c65e 100644
--- a/Lightning.WorkOrders.RetryManyWorkOrdersJob.html
+++ b/Lightning.WorkOrders.RetryManyWorkOrdersJob.html
@@ -5,16 +5,16 @@
-
+
- Lightning.WorkOrders.RetryManyWorkOrdersJob — Lightning v2.10.0
+ Lightning.WorkOrders.RetryManyWorkOrdersJob — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.WorkOrders.RetryManyWorkOrdersJob
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.WorkOrders.SearchParams.html b/Lightning.WorkOrders.SearchParams.html
index 562ec4bd11..1cf2c62cac 100644
--- a/Lightning.WorkOrders.SearchParams.html
+++ b/Lightning.WorkOrders.SearchParams.html
@@ -5,16 +5,16 @@
-
+
- Lightning.WorkOrders.SearchParams — Lightning v2.10.0
+ Lightning.WorkOrders.SearchParams — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.WorkOrders.SearchParams
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.WorkOrders.html b/Lightning.WorkOrders.html
index 51f3fa8127..5771e55c47 100644
--- a/Lightning.WorkOrders.html
+++ b/Lightning.WorkOrders.html
@@ -5,16 +5,16 @@
-
+
- Lightning.WorkOrders — Lightning v2.10.0
+ Lightning.WorkOrders — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.WorkOrders
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -453,7 +453,7 @@ create_for(target, multi \\ Multi.new(), op
-
Create a new Work Order.
For a webhook
create_for(trigger, workflow: workflow, dataclip: dataclip)
For a user
create_for(job, workflow: workflow, dataclip: dataclip, user: user)
+Create a new Work Order.
For a webhook
create_for(trigger, workflow: workflow, dataclip: dataclip)
For a user
create_for(job, workflow: workflow, dataclip: dataclip, user: user)
@@ -505,7 +505,7 @@ get(id, opts \\ [])
-Get a Work Order by id.
Optionally preload associations by passing a list of atoms to :include
.
Lightning.WorkOrders.get(id, include: [:runs])
+Get a Work Order by id.
Optionally preload associations by passing a list of atoms to :include
.
Lightning.WorkOrders.get(id, include: [:runs])
diff --git a/Lightning.Workers.RunToken.html b/Lightning.Workers.RunToken.html
index b30809d2a0..74cbca541e 100644
--- a/Lightning.Workers.RunToken.html
+++ b/Lightning.Workers.RunToken.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workers.RunToken — Lightning v2.10.0
+ Lightning.Workers.RunToken — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workers.RunToken
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workers.WorkerToken.html b/Lightning.Workers.WorkerToken.html
index d32edd2183..2940e8cb2b 100644
--- a/Lightning.Workers.WorkerToken.html
+++ b/Lightning.Workers.WorkerToken.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workers.WorkerToken — Lightning v2.10.0
+ Lightning.Workers.WorkerToken — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workers.WorkerToken
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workers.html b/Lightning.Workers.html
index 809295e8d5..ff09c068f0 100644
--- a/Lightning.Workers.html
+++ b/Lightning.Workers.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workers — Lightning v2.10.0
+ Lightning.Workers — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workers
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Edge.html b/Lightning.Workflows.Edge.html
index 94b8256c5a..9477f311f4 100644
--- a/Lightning.Workflows.Edge.html
+++ b/Lightning.Workflows.Edge.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Edge — Lightning v2.10.0
+ Lightning.Workflows.Edge — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Edge
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Job.html b/Lightning.Workflows.Job.html
index 5c7ebc0e54..cd40ee4e0a 100644
--- a/Lightning.Workflows.Job.html
+++ b/Lightning.Workflows.Job.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Job — Lightning v2.10.0
+ Lightning.Workflows.Job — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Job
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -358,17 +358,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)
diff --git a/Lightning.Workflows.Node.html b/Lightning.Workflows.Node.html
index 2026221f9f..009637d240 100644
--- a/Lightning.Workflows.Node.html
+++ b/Lightning.Workflows.Node.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Node — Lightning v2.10.0
+ Lightning.Workflows.Node — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Node
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Presence.html b/Lightning.Workflows.Presence.html
index 5a3967b41b..11ccefbba2 100644
--- a/Lightning.Workflows.Presence.html
+++ b/Lightning.Workflows.Presence.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Presence — Lightning v2.10.0
+ Lightning.Workflows.Presence — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Presence
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -354,27 +354,27 @@ build_presences_summary(presences, params)<
Examples
-iex> presences = [
-...> %{user: %{id: 1}, joined_at: ~N[2024-07-03 12:00:00], active_sessions: 1},
-...> %{user: %{id: 2}, joined_at: ~N[2024-07-03 12:05:00], active_sessions: 1},
-...> %{user: %{id: 3}, joined_at: ~N[2024-07-03 12:10:00], active_sessions: 1}
-...> ]
-iex> params = %{
-...> current_user_presence: %{user: %{id: 1}, joined_at: ~N[2024-07-03 12:00:00], active_sessions: 1},
-...> current_user: %{id: 1},
-...> view_only_users_ids: [2]
-...> }
-iex> build_presences_summary(presences, params)
-%{
- presences: [
- %{user: %{id: 1}, joined_at: ~N[2024-07-03 12:00:00], active_sessions: 1},
- %{user: %{id: 2}, joined_at: ~N[2024-07-03 12:05:00], active_sessions: 1},
- %{user: %{id: 3}, joined_at: ~N[2024-07-03 12:10:00], active_sessions: 1}
- ],
- prior_user_presence: %{user: %{id: 3}, joined_at: ~N[2024-07-03 12:10:00], active_sessions: 1},
- current_user_presence: %{user: %{id: 1}, joined_at: ~N[2024-07-03 12:00:00], active_sessions: 1},
+iex> presences = [
+...> %{user: %{id: 1}, joined_at: ~N[2024-07-03 12:00:00], active_sessions: 1},
+...> %{user: %{id: 2}, joined_at: ~N[2024-07-03 12:05:00], active_sessions: 1},
+...> %{user: %{id: 3}, joined_at: ~N[2024-07-03 12:10:00], active_sessions: 1}
+...> ]
+iex> params = %{
+...> current_user_presence: %{user: %{id: 1}, joined_at: ~N[2024-07-03 12:00:00], active_sessions: 1},
+...> current_user: %{id: 1},
+...> view_only_users_ids: [2]
+...> }
+iex> build_presences_summary(presences, params)
+%{
+ presences: [
+ %{user: %{id: 1}, joined_at: ~N[2024-07-03 12:00:00], active_sessions: 1},
+ %{user: %{id: 2}, joined_at: ~N[2024-07-03 12:05:00], active_sessions: 1},
+ %{user: %{id: 3}, joined_at: ~N[2024-07-03 12:10:00], active_sessions: 1}
+ ],
+ prior_user_presence: %{user: %{id: 3}, joined_at: ~N[2024-07-03 12:10:00], active_sessions: 1},
+ current_user_presence: %{user: %{id: 1}, joined_at: ~N[2024-07-03 12:00:00], active_sessions: 1},
has_presence_edit_priority: true
-}
+}
@@ -518,8 +518,8 @@ list_presences(topic)
Examples
-iex> Lightning.Workflows.Presence.list_presences("workflow:canvas")
-[%Lightning.Workflows.Presence{user: %User{id: 1}, ...}, ...]
+iex> Lightning.Workflows.Presence.list_presences("workflow:canvas")
+[%Lightning.Workflows.Presence{user: %User{id: 1}, ...}, ...]
@@ -555,12 +555,12 @@ new_user_presence(user, joined_at, active_s
Examples
-iex> Lightning.Workflows.Presence.new_user_presence(%User{id: 1}, 1625597762000000)
-%Lightning.Workflows.Presence{
- user: %User{id: 1},
+iex> Lightning.Workflows.Presence.new_user_presence(%User{id: 1}, 1625597762000000)
+%Lightning.Workflows.Presence{
+ user: %User{id: 1},
joined_at: 1625597762000000,
active_sessions: 0
-}
+}
@@ -638,7 +638,7 @@ track_user_presence(user, topic, pid)
Examples
-iex> Lightning.Workflows.Presence.track_user_presence(%User{id: 1}, "room:lobby", self())
+iex> Lightning.Workflows.Presence.track_user_presence(%User{id: 1}, "room:lobby", self())
:ok
diff --git a/Lightning.Workflows.Query.html b/Lightning.Workflows.Query.html
index b3d721c0f8..428e67b9ce 100644
--- a/Lightning.Workflows.Query.html
+++ b/Lightning.Workflows.Query.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Query — Lightning v2.10.0
+ Lightning.Workflows.Query — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Query
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Scheduler.html b/Lightning.Workflows.Scheduler.html
index b721d442fb..232c2fa983 100644
--- a/Lightning.Workflows.Scheduler.html
+++ b/Lightning.Workflows.Scheduler.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Scheduler — Lightning v2.10.0
+ Lightning.Workflows.Scheduler — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Scheduler
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Snapshot.Edge.html b/Lightning.Workflows.Snapshot.Edge.html
index 97511edb5a..0b27932c12 100644
--- a/Lightning.Workflows.Snapshot.Edge.html
+++ b/Lightning.Workflows.Snapshot.Edge.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Snapshot.Edge — Lightning v2.10.0
+ Lightning.Workflows.Snapshot.Edge — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Snapshot.Edge
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Snapshot.Job.html b/Lightning.Workflows.Snapshot.Job.html
index 3d8c2a7a63..2c8de8d4f1 100644
--- a/Lightning.Workflows.Snapshot.Job.html
+++ b/Lightning.Workflows.Snapshot.Job.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Snapshot.Job — Lightning v2.10.0
+ Lightning.Workflows.Snapshot.Job — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Snapshot.Job
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Snapshot.Trigger.html b/Lightning.Workflows.Snapshot.Trigger.html
index 009684319f..fe8da3764c 100644
--- a/Lightning.Workflows.Snapshot.Trigger.html
+++ b/Lightning.Workflows.Snapshot.Trigger.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Snapshot.Trigger — Lightning v2.10.0
+ Lightning.Workflows.Snapshot.Trigger — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Snapshot.Trigger
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Snapshot.html b/Lightning.Workflows.Snapshot.html
index 2fb5ed9bcc..d68a62ee88 100644
--- a/Lightning.Workflows.Snapshot.html
+++ b/Lightning.Workflows.Snapshot.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Snapshot — Lightning v2.10.0
+ Lightning.Workflows.Snapshot — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Snapshot
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Trigger.html b/Lightning.Workflows.Trigger.html
index bd764d871f..9ec5b898d1 100644
--- a/Lightning.Workflows.Trigger.html
+++ b/Lightning.Workflows.Trigger.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Trigger — Lightning v2.10.0
+ Lightning.Workflows.Trigger — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Trigger
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Triggers.Events.html b/Lightning.Workflows.Triggers.Events.html
index 2a711626b3..753632c8a7 100644
--- a/Lightning.Workflows.Triggers.Events.html
+++ b/Lightning.Workflows.Triggers.Events.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Triggers.Events — Lightning v2.10.0
+ Lightning.Workflows.Triggers.Events — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Triggers.Events
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Triggers.KafkaConfiguration.html b/Lightning.Workflows.Triggers.KafkaConfiguration.html
index 439e50f6e4..08a71d34b0 100644
--- a/Lightning.Workflows.Triggers.KafkaConfiguration.html
+++ b/Lightning.Workflows.Triggers.KafkaConfiguration.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Triggers.KafkaConfiguration — Lightning v2.10.0
+ Lightning.Workflows.Triggers.KafkaConfiguration — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Triggers.KafkaConfiguration
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.WebhookAuthMethod.html b/Lightning.Workflows.WebhookAuthMethod.html
index eb247e2abc..532b3c0dec 100644
--- a/Lightning.Workflows.WebhookAuthMethod.html
+++ b/Lightning.Workflows.WebhookAuthMethod.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.WebhookAuthMethod — Lightning v2.10.0
+ Lightning.Workflows.WebhookAuthMethod — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.WebhookAuthMethod
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.WebhookAuthMethodAudit.html b/Lightning.Workflows.WebhookAuthMethodAudit.html
index e9843b0f36..09319cd3a3 100644
--- a/Lightning.Workflows.WebhookAuthMethodAudit.html
+++ b/Lightning.Workflows.WebhookAuthMethodAudit.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.WebhookAuthMethodAudit — Lightning v2.10.0
+ Lightning.Workflows.WebhookAuthMethodAudit — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.WebhookAuthMethodAudit
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.Workflow.html b/Lightning.Workflows.Workflow.html
index f222d94485..fa6383d082 100644
--- a/Lightning.Workflows.Workflow.html
+++ b/Lightning.Workflows.Workflow.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows.Workflow — Lightning v2.10.0
+ Lightning.Workflows.Workflow — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows.Workflow
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
diff --git a/Lightning.Workflows.html b/Lightning.Workflows.html
index 11a857ff50..c57d4a0087 100644
--- a/Lightning.Workflows.html
+++ b/Lightning.Workflows.html
@@ -5,16 +5,16 @@
-
+
- Lightning.Workflows — Lightning v2.10.0
+ Lightning.Workflows — Lightning v2.10.1
-
+
@@ -54,7 +54,7 @@
Lightning
@@ -132,7 +132,7 @@
Lightning.Workflows
- (Lightning v2.10.0)
+ (Lightning v2.10.1)
@@ -446,8 +446,8 @@ change_workflow(workflow, attrs \\ %{})
Examples
-iex> change_workflow(workflow)
-%Ecto.Changeset{data: %Workflow{}}
+iex> change_workflow(workflow)
+%Ecto.Changeset{data: %Workflow{}}
@@ -509,12 +509,12 @@ get_edge_by_trigger(trigger)
Examples
-trigger = %Trigger{id: 1, ...}
-Lightning.Workflows.get_edge_by_trigger(trigger)
+trigger = %Trigger{id: 1, ...}
+Lightning.Workflows.get_edge_by_trigger(trigger)
# => %Edge{source_trigger: %Trigger{}, target_job: %Job{}, ...}
-non_existent_trigger = %Trigger{id: 999, ...}
-Lightning.Workflows.get_edge_by_trigger(non_existent_trigger)
+non_existent_trigger = %Trigger{id: 999, ...}
+Lightning.Workflows.get_edge_by_trigger(non_existent_trigger)
# => nil
@@ -584,10 +584,10 @@ get_trigger_by_webhook(path)
Examples
-Lightning.Workflows.get_trigger_by_webhook("some_path_or_id")
+Lightning.Workflows.get_trigger_by_webhook("some_path_or_id")
# => %Trigger{id: 1, custom_path: "some_path_or_id", ...}
-Lightning.Workflows.get_trigger_by_webhook("non_existent_path_or_id")
+Lightning.Workflows.get_trigger_by_webhook("non_existent_path_or_id")
# => nil
@@ -662,10 +662,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)
@@ -769,8 +769,8 @@ list_workflows()
Examples
-iex> list_workflows()
-[%Workflow{}, ...]
+iex> list_workflows()
+[%Workflow{}, ...]
@@ -800,8 +800,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{}}
diff --git a/Lightning.epub b/Lightning.epub
index 05f25e2854a866fdde13b95baa224cd3359e00e6..85a3fd1fb9351332eeaea8ed1ae7a81485abaa35 100644
GIT binary patch
delta 428941
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 &
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