Skip to main content

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;