Skip to main content

reifydb_core/actors/
admin.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2025 ReifyDB
3
4use reifydb_runtime::actor::{reply::Reply, system::ActorHandle};
5
6/// Handle to the admin server actor.
7pub type AdminHandle = ActorHandle<AdminMessage>;
8
9/// Messages for the admin server actor.
10pub enum AdminMessage {
11	/// Execute a query.
12	Execute {
13		query: String,
14		reply: Reply<AdminExecuteResponse>,
15	},
16	/// Login with a token.
17	Login {
18		token: String,
19		reply: Reply<AdminLoginResponse>,
20	},
21	/// Logout.
22	Logout {
23		reply: Reply<AdminLogoutResponse>,
24	},
25	/// Check auth status.
26	AuthStatus {
27		reply: Reply<AdminAuthStatusResponse>,
28	},
29}
30
31/// Response to an execute request.
32pub enum AdminExecuteResponse {
33	Success {
34		message: String,
35	},
36	NotImplemented,
37	Error(String),
38}
39
40/// Response to a login request.
41pub enum AdminLoginResponse {
42	Success {
43		session_token: String,
44	},
45	AuthNotRequired,
46	InvalidToken,
47}
48
49/// Response to a logout request.
50pub enum AdminLogoutResponse {
51	Ok,
52}
53
54/// Response to an auth status request.
55pub struct AdminAuthStatusResponse {
56	pub auth_required: bool,
57	pub authenticated: bool,
58}