the file structure has been created and the application's basic architecture has been defined
4
src-tauri/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# Generated by Cargo
|
||||
# will have compiled files and executables
|
||||
/target/
|
||||
/gen/schemas
|
||||
5259
src-tauri/Cargo.lock
generated
Normal file
25
src-tauri/Cargo.toml
Normal file
@@ -0,0 +1,25 @@
|
||||
[package]
|
||||
name = "abdristus"
|
||||
version = "0.1.0"
|
||||
description = "Cross-platform password manager built with Tauri and Angular"
|
||||
authors = ["you"]
|
||||
license = "MIT"
|
||||
repository = ""
|
||||
edition = "2021"
|
||||
rust-version = "1.77.2"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[lib]
|
||||
name = "app_lib"
|
||||
crate-type = ["staticlib", "cdylib", "rlib"]
|
||||
|
||||
[build-dependencies]
|
||||
tauri-build = { version = "2.5.6" }
|
||||
|
||||
[dependencies]
|
||||
serde_json = "1.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
log = "0.4"
|
||||
tauri = { version = "2.10.3" }
|
||||
tauri-plugin-log = "2"
|
||||
3
src-tauri/build.rs
Normal file
@@ -0,0 +1,3 @@
|
||||
fn main() {
|
||||
tauri_build::build()
|
||||
}
|
||||
11
src-tauri/capabilities/default.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "../gen/schemas/desktop-schema.json",
|
||||
"identifier": "default",
|
||||
"description": "enables the default permissions",
|
||||
"windows": [
|
||||
"main"
|
||||
],
|
||||
"permissions": [
|
||||
"core:default"
|
||||
]
|
||||
}
|
||||
BIN
src-tauri/icons/128x128.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
src-tauri/icons/128x128@2x.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
src-tauri/icons/32x32.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
src-tauri/icons/Square107x107Logo.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
src-tauri/icons/Square142x142Logo.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src-tauri/icons/Square150x150Logo.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src-tauri/icons/Square284x284Logo.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
src-tauri/icons/Square30x30Logo.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
src-tauri/icons/Square310x310Logo.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
src-tauri/icons/Square44x44Logo.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
src-tauri/icons/Square71x71Logo.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
src-tauri/icons/Square89x89Logo.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
src-tauri/icons/StoreLogo.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
src-tauri/icons/icon.icns
Normal file
BIN
src-tauri/icons/icon.ico
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
src-tauri/icons/icon.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
2
src-tauri/src/commands/auth.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
// Authentication IPC command handlers
|
||||
// Implements: unlock_vault, unlock_vault_biometric, lock_vault
|
||||
2
src-tauri/src/commands/mod.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
pub mod auth;
|
||||
pub mod vault;
|
||||
2
src-tauri/src/commands/vault.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
// Vault management IPC command handlers
|
||||
// Implements: get_accounts, create_account, update_account, delete_account
|
||||
2
src-tauri/src/core/crypto.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
// Cryptographic operations
|
||||
// Implements: Argon2id key derivation, XChaCha20-Poly1305 encrypt/decrypt
|
||||
2
src-tauri/src/core/mod.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
pub mod crypto;
|
||||
pub mod password_gen;
|
||||
2
src-tauri/src/core/password_gen.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
// Password generator
|
||||
// Implements: configurable password generation (length, charset, special symbols)
|
||||
2
src-tauri/src/database/mod.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
pub mod models;
|
||||
pub mod repository;
|
||||
2
src-tauri/src/database/models.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
// Database models
|
||||
// Rust structs for mapping SQLite tables (Account, etc.)
|
||||
2
src-tauri/src/database/repository.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
// Database repository
|
||||
// SQL queries, transactions, CRUD operations for vault_<uuid>.sqlite
|
||||
2
src-tauri/src/database/schema.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- Database schema for Abdristus Password Manager
|
||||
-- Table definitions and migrations will be added in DB-01
|
||||
2
src-tauri/src/events/emitter.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
// Event emitter
|
||||
// Push events to frontend: vault-updated, system-locked
|
||||
1
src-tauri/src/events/mod.rs
Normal file
@@ -0,0 +1 @@
|
||||
pub mod emitter;
|
||||
21
src-tauri/src/lib.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
mod commands;
|
||||
mod core;
|
||||
mod database;
|
||||
mod events;
|
||||
|
||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||
pub fn run() {
|
||||
tauri::Builder::default()
|
||||
.setup(|app| {
|
||||
if cfg!(debug_assertions) {
|
||||
app.handle().plugin(
|
||||
tauri_plugin_log::Builder::default()
|
||||
.level(log::LevelFilter::Info)
|
||||
.build(),
|
||||
)?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
}
|
||||
6
src-tauri/src/main.rs
Normal file
@@ -0,0 +1,6 @@
|
||||
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
|
||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
||||
|
||||
fn main() {
|
||||
app_lib::run();
|
||||
}
|
||||
40
src-tauri/tauri.conf.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
||||
"productName": "Abdristus",
|
||||
"version": "0.1.0",
|
||||
"identifier": "com.abdristus.app",
|
||||
"build": {
|
||||
"frontendDist": "../dist/abdristus/browser",
|
||||
"devUrl": "http://localhost:4200",
|
||||
"beforeDevCommand": "npm run start",
|
||||
"beforeBuildCommand": "npm run build"
|
||||
},
|
||||
"app": {
|
||||
"windows": [
|
||||
{
|
||||
"label": "main",
|
||||
"title": "Abdristus — Password Manager",
|
||||
"width": 1100,
|
||||
"height": 720,
|
||||
"minWidth": 800,
|
||||
"minHeight": 600,
|
||||
"resizable": true,
|
||||
"center": true
|
||||
}
|
||||
],
|
||||
"security": {
|
||||
"csp": "default-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' asset: https://asset.localhost"
|
||||
}
|
||||
},
|
||||
"bundle": {
|
||||
"active": true,
|
||||
"targets": "all",
|
||||
"icon": [
|
||||
"icons/32x32.png",
|
||||
"icons/128x128.png",
|
||||
"icons/128x128@2x.png",
|
||||
"icons/icon.icns",
|
||||
"icons/icon.ico"
|
||||
]
|
||||
}
|
||||
}
|
||||