cattle_grid.config¶
cattle_grid.config ¶
Implements loading the configuration
auth ¶
AuthConfig ¶
Bases: BaseModel
Configures the Authorization layer
Parameters:
Name | Type | Description | Default |
---|---|---|---|
actor_id
|
str
|
actor_id for the Application actor used to fetch public keys |
required |
actor_acct_id
|
str
|
acct uri of the Application Actor used to fetch public keys |
required |
public_key
|
str
|
Public key of the Application actor |
required |
private_key
|
str
|
Private key of the Application actor |
required |
domain_blocks
|
Set[str]
|
Set of blocked domains |
required |
require_signature_for_activity_pub
|
bool
|
If set to true, all requests with accept type that match activitypub must be signed |
True
|
Source code in cattle_grid/config/auth.py
get_auth_config
cached
¶
get_auth_config(
settings: Dynaconf = get_settings(),
) -> AuthConfig
Returns the configuration for authorization
Returns:
Type | Description |
---|---|
AuthConfig
|
|
Source code in cattle_grid/config/auth.py
new_auth_config ¶
new_auth_config(
actor_id: str, username: str | None = None
) -> AuthConfig
Creates a new authorization configuration
Source code in cattle_grid/config/auth.py
save_auth_config ¶
save_auth_config(filename: str, config: AuthConfig) -> None
Saves the authorization configuration to a file
rewrite ¶
RewriteConfiguration
dataclass
¶
Configuration of the rewrite process
Parameters:
Name | Type | Description | Default |
---|---|---|---|
ruleset
|
dict[str, RewriteRules]
|
mapping between group names and rewrite rules |
required |
Source code in cattle_grid/config/rewrite.py
add_rules ¶
Adds new rules to the ruleset
Source code in cattle_grid/config/rewrite.py
from_rules
staticmethod
¶
Constructs the RewriteConfiguration
>>> rules = {"old": "new"}
>>> config = RewriteConfiguration.from_rules({"group": rules})
>>> config
RewriteConfiguration(ruleset={'group': RewriteRules(rules={'old': 'new'})})
>>> group_names = ["group"]
>>> config.rewrite("unchanged", group_names)
'unchanged'
>>> config.rewrite("old", group_names)
'new'
Source code in cattle_grid/config/rewrite.py
rewrite ¶
rewrites the method_name
Source code in cattle_grid/config/rewrite.py
validators ¶
account_validations
module-attribute
¶
account_validations = [
Validator(
"account.forbidden_names",
default=lambda a, b: list(
["bovine", "cattle_grid", "admin", "guest"]
),
cast=list,
),
Validator(
"account.allowed_name_regex",
cast=str,
default="^[a-zA-Z0-9_]{1,16}$",
),
]
Validators for the account
activity_pub_validators
module-attribute
¶
activity_pub_validators = [
Validator(
"activity_pub.internal_exchange",
default="cattle_grid_internal",
),
Validator(
"activity_pub.exchange", default="cattle_grid"
),
Validator(
"activity_pub.account_exchange", default="amq.topic"
),
]
Validators for ActivityPub
auth_validators
module-attribute
¶
Validates the authentication configuration
base_validators
module-attribute
¶
base_validators = [
Validator("amqp_uri", default="amqp://:memory:"),
Validator(
"db_uri", default="sqlite+aiosqlite:///:memory:"
),
Validator("enable_reporting", cast=bool, default=False),
Validator("processor_in_app", cast=bool, default=False),
Validator("permissions", default={}),
]
Validates the basic configuration
extensions_validations
module-attribute
¶
Validators for the plugins
frontend_validations
module-attribute
¶
frontend_validations = [
Validator(
"frontend.base_urls",
default=lambda a, b: list([]),
cast=lambda x: [(str(y)) for y in x],
condition=lambda items: all(
(
startswith("http://")
or startswith("https://")
)
for x in items
),
)
]
Validators for the frontend
gateway_admin_validations
module-attribute
¶
gateway_admin_validations = [
Validator(
"gateway.admin.enable", cast=bool, default=False
),
Validator(
"gateway.admin.enable_reset",
cast=bool,
default=False,
),
]
Validators for the gateway
plugins_validations
module-attribute
¶
Validators for the plugins