def self.
from_json(string_or_io : String | IO, trusted : Bool =
false) :
self
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
from_json(string_or_io : String | IO, root : String, trusted : Bool =
false) :
self
#
Deserializes the given JSON in string_or_io into
an instance of self, assuming the JSON consists
of an JSON object with key root, and whose value is
the value to deserialize. Will not deserialise from
fields with mass_assign: false
class User < ActiveModel::Model
attribute name : String
attribute google_id : UUID, mass_assign: false
end
User.from_json(%({"main": {"name": "Jason", "google_id": "f6f70bfb-c882-446d-8758-7ce47db39620"}}), root: "main") # => #<User:0x103131b20 @name="Jason">
def self.
from_trusted_json(string_or_io : String | IO, root : String) :
self
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
from_trusted_json(string_or_io : String | IO) :
self
#
Serialize from a trusted JSON source
def self.
from_trusted_yaml(string_or_io : String | IO) :
self
#
Serialize from a trusted YAML source
def self.
from_yaml(string_or_io : String | IO, trusted : Bool =
false) :
self
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
new(pull : JSON::PullParser)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
new(rs : DB::ResultSet)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
new(jti : String | ActiveModel::Model::None =
::ActiveModel::Model::None.new, token_type : String | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, client_id : String | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, sub : String | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, scope : String | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, issued_at : Int64 | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, expires_at : Int64 | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, cert_thumbprint : String | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, revoked_at : Int64 | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, id : Int64 | Nil | ActiveModel::Model::None =
::ActiveModel::Model::None.new, created_at : Time | ActiveModel::Model::None =
::ActiveModel::Model::None.new, updated_at : Time | ActiveModel::Model::None =
::ActiveModel::Model::None.new)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
new(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
#
Initialize PlaceOS::Model::OAuthToken from HTTP::Params.
def self.
attributes : Array(Symbol)
#
Returns all attribute keys.
def self.
changes(id : Int64 | Nil | Nil =
nil) :
ChangeFeed
#
Changefeed at row (if #id passed) or whole table level.
Returns a ChangeFeed instance which can be used to invoke async callbacks via on or
use blocking Iterator via each method.
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
from_rs(__temp_2046 : DB::ResultSet)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def self.
on_error(err : Exception | IO::Error)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
after_initialize(trusted : Bool)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Generate code to apply default values
def
assign_attributes(jti : String | Missing =
Missing, token_type : String | Nil | Missing =
Missing, client_id : String | Nil | Missing =
Missing, sub : String | Nil | Missing =
Missing, scope : String | Nil | Missing =
Missing, issued_at : Int64 | Nil | Missing =
Missing, expires_at : Int64 | Nil | Missing =
Missing, cert_thumbprint : String | Nil | Missing =
Missing, revoked_at : Int64 | Nil | Missing =
Missing, id : Int64 | Nil | Missing =
Missing, created_at : Time | Missing =
Missing, updated_at : Time | Missing =
Missing)
#
Assign to multiple attributes.
def
assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
#
Assign to multiple attributes via HTTP::Params.
Assign to multiple attributes from a model object
def
assign_attributes_from_json(json, root : String)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
assign_attributes_from_json(json)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
assign_attributes_from_trusted_json(json, root : String)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
assign_attributes_from_trusted_json(json)
#
Assign each field from JSON if field exists in JSON and has changed in model
def
assign_attributes_from_trusted_yaml(yaml)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
assign_attributes_from_yaml(yaml)
#
Uses the YAML parser as JSON is valid YAML
Returns a Hash of all attribute values
Returns a NamedTuple of all attribute values.
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
cert_thumbprint_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
cert_thumbprint_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
cert_thumbprint_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
cert_thumbprint_default : String | Nil
#
def
cert_thumbprint_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
cert_thumbprint_was : String | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
cert_thumbprint_will_change! : Nil
#
Include #cert_thumbprint in the set of changed attributes, whether it has changed or not.
Check if any attributes have changed.
Returns a Hash with all changed attributes.
def
changed_json(io : IO) : Nil
#
Serialize the set of changed attributes to JSON.
def
changed_json : String
#
Serialize the set of changed attributes to JSON.
def
changed_persist_attributes
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
changed_yaml(io : IO) : Nil
#
Serialize the set of changed attributes to YAML.
def
changed_yaml : String
#
Serialize the set of changed attributes to YAML.
def
client_id_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
client_id_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
client_id_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
client_id_default : String | Nil
#
def
client_id_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
client_id_was : String | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
client_id_will_change! : Nil
#
Include #client_id in the set of changed attributes, whether it has changed or not.
def
created_at? : Time | Nil
#
NOTE use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
def
created_at_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
created_at_change : Tuple(Time | Nil, Time | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
created_at_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
created_at_default : Time
#
def
created_at_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
created_at_was : Time | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
created_at_will_change! : Nil
#
Include #created_at in the set of changed attributes, whether it has changed or not.
def
expires_at_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
expires_at_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
expires_at_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
expires_at_default : Int64 | Nil
#
def
expires_at_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
expires_at_was : Int64 | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
expires_at_will_change! : Nil
#
Include #expires_at in the set of changed attributes, whether it has changed or not.
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
id_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
id_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
id_was : Int64 | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
id_will_change! : Nil
#
Include #id in the set of changed attributes, whether it has changed or not.
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
issued_at_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
issued_at_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
issued_at_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
issued_at_default : Int64 | Nil
#
def
issued_at_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
issued_at_was : Int64 | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
issued_at_will_change! : Nil
#
Include #issued_at in the set of changed attributes, whether it has changed or not.
def
jti? : String | Nil
#
NOTE use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
def
jti_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
jti_change : Tuple(String | Nil, String | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
jti_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
jti_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
jti_was : String | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
jti_will_change! : Nil
#
Include #jti in the set of changed attributes, whether it has changed or not.
def
persistent_attributes
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
Reset each attribute to their previous values and clears all changes.
Stamps #revoked_at to the current time (epoch seconds) and
saves. No-op if already revoked.
true if the token has been marked revoked via #revoked_at.
def
revoked_at_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
revoked_at_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
revoked_at_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
revoked_at_default : Int64 | Nil
#
def
revoked_at_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
revoked_at_was : Int64 | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
revoked_at_will_change! : Nil
#
Include #revoked_at in the set of changed attributes, whether it has changed or not.
def
run_create_callbacks(&)
#
Wrap a block with callbacks for the appropriate crud operation
def
run_destroy_callbacks(&)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
run_save_callbacks(&)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
run_update_callbacks(&)
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
scope_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
scope_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
scope_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
scope_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
scope_was : String | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
scope_will_change! : Nil
#
Include #scope in the set of changed attributes, whether it has changed or not.
def
sub_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
sub_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
sub_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
sub_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
sub_was : String | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
sub_will_change! : Nil
#
Include #sub in the set of changed attributes, whether it has changed or not.
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
token_type_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
token_type_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
token_type_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
token_type_default : String | Nil
#
def
token_type_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
token_type_was : String | Nil | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
token_type_will_change! : Nil
#
Include #token_type in the set of changed attributes, whether it has changed or not.
def
updated_at? : Time | Nil
#
NOTE use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
def
updated_at_assigned? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
updated_at_change : Tuple(Time | Nil, Time | Nil) | Nil
#
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
def
updated_at_changed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
updated_at_default : Time
#
def
updated_at_removed? : Bool
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
updated_at_was : Time | Nil
#
Persistence backing for the auth.cr AuthlyAdapter::TokenStore.
Each row records the metadata of a single OAuth2 access or refresh
token; the #revoked_at column lets the auth service mark a token
invalid without rotating signing keys.
See migration 20260519100000000_add_oauth_tokens.sql for the
column rationale (notably: most columns are nullable so a revoke
for a never-stored refresh token can still leave a marker).
def
updated_at_will_change! : Nil
#
Include #updated_at in the set of changed attributes, whether it has changed or not.
def
validate_nilability
#
Validate that all non-nillable fields have values.