[package]
edition = "2024"
rust-version = "1.99"
name = "sofie-identity"
version = "0.4.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Accounts, their area memberships, and signing up, in and out: the identity an app opts into."
homepage = "https://sofie.rs"
readme = false
license = "MIT OR Apache-2.0"
repository = "https://github.com/sofie-rs/sofie"
[package.metadata.docs.rs]
all-features = true
[features]
account-data = [
"sofie/contracts",
"sofie/resources",
]
account-links = [
"sofie/retention",
"sofie/signed-links",
]
default = ["sessions"]
email-verification = ["links"]
i18n = [
"links",
"sofie/i18n",
]
impersonation = [
"permissions",
"sessions",
"sofie/resources",
]
links = [
"account-links",
"sofie/client-headers",
"sofie/mail",
]
notify = [
"account-data",
"sofie/notify",
]
oauth = [
"dep:sofie-client",
"sessions",
"sofie/contracts",
"sofie/flows",
"sofie/log-fields",
"sofie/resources",
"sofie/signed-links",
"sofie/soft-delete",
]
passkeys = [
"sessions",
"sofie/client-headers",
"sofie/resources",
"sofie/signed-links",
"sofie/soft-delete",
]
password-reset = ["links"]
permissions = [
"sofie/permissions",
"sofie/soft-delete",
]
permitted-flags = [
"permitted-screens",
"sofie/feature-flags",
]
permitted-screens = [
"permissions",
"sofie/resources",
"sofie/groups",
]
permitted-shield = [
"permitted-screens",
"shield",
]
session-screens = [
"sessions",
"sofie/resources",
]
sessions = [
"sofie/retention",
"sofie/session-list",
]
shield = ["sofie/shield"]
sign-in-links = ["links"]
testing = ["dep:sofie-testing"]
token-screens = [
"tokens",
"sofie/resources",
"sofie/signed-links",
]
tokens = [
"permissions",
"sofie/tokens",
]
totp = [
"account-links",
"sessions",
"sofie/resources",
]
[lib]
name = "sofie_identity"
path = "src/lib.rs"
[[test]]
name = "account_data"
path = "tests/account_data.rs"
[[test]]
name = "impersonation"
path = "tests/impersonation.rs"
[[test]]
name = "lang"
path = "tests/lang.rs"
[[test]]
name = "mail_language"
path = "tests/mail_language.rs"
[[test]]
name = "mailed_links"
path = "tests/mailed_links.rs"
[[test]]
name = "oauth"
path = "tests/oauth.rs"
[[test]]
name = "owned_resources"
path = "tests/owned_resources.rs"
[[test]]
name = "passkeys"
path = "tests/passkeys.rs"
[[test]]
name = "permitted"
path = "tests/permitted.rs"
[[test]]
name = "permitted_screens"
path = "tests/permitted_screens.rs"
[[test]]
name = "role_screens"
path = "tests/role_screens.rs"
[[test]]
name = "route_names"
path = "tests/route_names.rs"
[[test]]
name = "screens"
path = "tests/screens.rs"
[[test]]
name = "sessions"
path = "tests/sessions.rs"
[[test]]
name = "shield"
path = "tests/shield.rs"
[[test]]
name = "sign_in"
path = "tests/sign_in.rs"
[[test]]
name = "sqlite"
path = "tests/sqlite.rs"
[[test]]
name = "token_screen"
path = "tests/token_screen.rs"
[[test]]
name = "tokens"
path = "tests/tokens.rs"
[[test]]
name = "two_factor"
path = "tests/two_factor.rs"
[dependencies.argon2]
version = "0.6.0"
features = [
"alloc",
"password-hash",
]
default-features = false
[dependencies.ring]
version = "0.17.14"
[dependencies.sofie]
version = "0.4.0"
features = [
"engine",
"web",
]
default-features = false
package = "sofie-framework"
[dependencies.sofie-client]
version = "0.4.0"
optional = true
[dependencies.sofie-testing]
version = "0.4.0"
optional = true
[dependencies.tokio]
version = "1.53.2"
features = ["rt"]
[dependencies.unicode-normalization]
version = "0.1.25"
default-features = false
[dev-dependencies.serde_json]
version = "1.0.151"
[dev-dependencies.tokio]
version = "1.53.2"
features = [
"rt",
"macros",
"net",
]
[build-dependencies.sofie-engine]
version = "0.4.0"
features = ["compile"]
[lints.clippy]
missing_errors_doc = "allow"
missing_panics_doc = "allow"
unused_async = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "forbid"