mz_auth/lib.rs
1// Copyright Materialize, Inc. and contributors. All rights reserved.
2//
3// Use of this software is governed by the Business Source License
4// included in the LICENSE file.
5//
6// As of the Change Date specified in that file, in accordance with
7// the Business Source License, use of this software will be governed
8// by the Apache License, Version 2.0.
9
10use serde::{Deserialize, Serialize};
11
12pub mod hash;
13pub mod password;
14
15/// Identifies which authentication mechanism was used for a session.
16#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
17pub enum AuthenticatorKind {
18 /// Authenticated via Frontegg.
19 Frontegg,
20 /// Authenticated via internally stored password hashes.
21 Password,
22 /// Authenticated via SASL.
23 Sasl,
24 /// Authenticated via OIDC (JWT tokens).
25 Oidc,
26 /// No authentication performed.
27 #[default]
28 None,
29}
30
31/// A sentinel type signifying successful authentication.
32///
33/// This type is used to establish an authenticated Adapter client session,
34/// and should only be constructed by authenticators to indicate that authentication
35/// has succeeded. It may also be used when authentication is not required.
36#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct Authenticated;