# newAuthConfig

## Summary
Create an `AuthConfig` with the supplied secret and the library defaults for every other field.

## Symbol
- Name: `new`
- Original Symbol: `AuthConfig::new`
- Kind: `method`
- Owner: `AuthConfig`

## Signature
```rust
pub fn new(secret: impl Into<String>) -> Self
```

## Location
- `crates/core/src/config.rs`
- Re-exported from `src/lib.rs`

## Inputs
- `secret`: required; any value implementing `Into<String>`
- Conversion: the value is consumed immediately into `AuthConfig.secret`

## Returns
- `AuthConfig`
- The returned config uses the provided `secret` and `Default::default()` for the rest of the fields

## Errors
- This method does not return an error
- A config created here will later fail `validate()` if `secret` is empty or shorter than 32 characters

## Preconditions
- None to construct the value
- Callers that intend to build an auth runtime must eventually supply a secret that passes `AuthConfig::validate()`

## Side Effects
- None

## Guarantees
- `app_name` defaults to `"Athena Auth"`
- `base_url` defaults to `"http://localhost:3000"`
- `base_path` defaults to `"/api/auth"`
- Session defaults include a 7 day expiry, a 24 hour `update_age`, and cookie name `"athena-auth.session-token"`
- The method does not normalize or validate the secret

## Examples
```rust
let config = AuthConfig::new("test-secret-key-that-is-at-least-32-characters-long")
    .base_url("http://localhost:3000")
    .password_min_length(8);
```

## Source of Truth
- Implementation: `crates/core/src/config.rs`
- Validation path: `crates/core/src/config.rs`, `src/core/auth.rs`
- Tests: `src/__tests__/lib.rs`
- Call sites: `examples/auth_builder_minimal.rs`, `examples/auth_core_ok.rs`, `tests/compatibility_tests.rs`
