Repository navigation
docs: list what the audit log records, and name EXTENDDB_PASSWORD for manage - #842
Merged
Merged
Conversation
… manage getting-started.md said that every management and settings operation goes to the audit log. Its list included changes to accounts, users, groups, roles, policies and access keys. Section 7 said that the server logs every credential import. The server writes audit entries only for DeleteAdmin, user and role tag changes, AssumeRole (granted, and refused by the role's trust policy) and settings changes made through the management API. extenddb settings set changes the catalog without the server and prints its entry on its own standard output, so the server writes no audit entry for it. Section 9 now says this and names the changes that are not audit-logged. It also says that the server writes no entry while the log level is error or the log filter turns the audit targets off, and gives the macOS and Docker Compose commands. The admin guide and the security model say the same, and no longer say that all logging goes to syslog: a server started with --foreground logs to stderr. getting-started.md and the security model told extenddb manage users to put the password in EXTENDDB_ADMIN_PASSWORD. extenddb init reads that variable for the first admin's password. extenddb manage reads EXTENDDB_PASSWORD when --password is not given. The notes now set it with read -rs, which keeps it out of shell history. They also say that the other password flags and --secret-access-key have no environment variable. Signed-off-by: Lee Hannigan <29015211+LeeroyHannigan@users.noreply.github.com>
LeeroyHannigan
requested review from
amrith,
c33howard,
eliseong,
hitesh96db,
jcshepherd,
navareamol,
pdf-amzn and
robinnsc
as code owners
November 5, 2026 02:38
hitesh96db
approved these changes
Nov 9, 2026
LeeroyHannigan
added a commit
that referenced
this pull request
Nov 10, 2026
#842 rewrote the three notes that this branch changed: two in docs/getting-started.md and one in docs/manuals/10-security-model.md. Main's wording already names EXTENDDB_PASSWORD, and its two getting-started notes give the read -rs form, so the merge keeps it. The first getting-started note now also says that manage prints a warning on stderr when it gets --password, which this branch adds. The security model gets the same fact as a list item of its own. Signed-off-by: Lee Hannigan <29015211+LeeroyHannigan@users.noreply.github.com>
5 of 8 tasks
LeeroyHannigan
added a commit
that referenced
this pull request
Nov 10, 2026
Main at 887b6e2 adds two commits since the previous merge. #842 lists what the audit log records. #840 refuses access key import unless allow_credential_import is true. Neither commit adds a migration, so attribute_name_escape stays at id 10. The merge has no conflicts. Both sides edited docs/manuals/07-upgrade-manual.md, docs/differences-from-dynamodb.md, docs/getting-started.md and docs/manuals/05-admin-guide.md. Main changed the text on credential import and audit logging, and added a v0.1.15 behavior change that needs no catalog migration. This branch changed the migration list, the sample outputs and the escape. The changes are in separate paragraphs and table rows. The Current Status section lists migrations 1 to 10. Each sample output and example still names migration 10, so the merge changes no line beyond main's.
7 of 8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
docs/getting-started.mdsection 9 now lists the operations that write audit entries, as the security model does (Operational Security, Logging):extenddb::audit::manage: DeleteAdmin, user and role tag changes, and AssumeRole, both granted and refused by the role's trust policy.extenddb::audit::settings: each settings change made through the management API (PUT /management/settings/{key}).extenddb settings setchanges the catalog without the server and prints its entry on its own standard output. So the server writes no audit entry for that change.error, or whilelogging.levelturns the audit targets off.--foreground. The section gives the Linux, macOS and Docker Compose commands.docs/manuals/05-admin-guide.mdanddocs/manuals/10-security-model.mdsay the same, and no longer say that all logging goes to syslog.docs/getting-started.mdsection 7, the security note after theimport-access-keyexample, anddocs/manuals/10-security-model.md(Credential Handling) now tellextenddb manageusers to setEXTENDDB_PASSWORD. Before, they namedEXTENDDB_ADMIN_PASSWORD. The notes set it withread -rs, which keeps the password out of shell history. They also say that--admin-password,--new-password,--user-passwordand--secret-access-keyhave no environment variable.Why
Section 9 said that every management and settings operation goes to the audit log. The server writes audit entries for 4 kinds of change only. An operator who reads the old text expects a record of each key, user and policy change, and the log does not have one.
extenddb initreadsEXTENDDB_ADMIN_PASSWORDfor the password of the first admin.extenddb managereadsEXTENDDB_PASSWORDwhen--passwordis not given (crates/app/src/manage_http.rs). A user who followed the old text and left out--passwordgotNo password provided. Use --password VALUE or set EXTENDDB_PASSWORD.Testing done
extenddb::auditlog calls onmain:admin.rs,assume_role.rs,iam_user.rs,iam_role.rsandops_settings.rsincrates/server/src/management/, andcrates/app/src/cmd_settings.rs. The console writes no audit entries and has no route for these changes.extenddb settings setwrites its log (run_interactiveincrates/app/src/lib.rsinstalls a subscriber that writes to standard output), and the server's log filter (crates/server/src/serve.rsandcrates/server/src/workers.rs).crates/app/src/manage_http.rs, the flags incrates/app/src/manage_types.rs, and the variable thatcrates/app/src/cmd_init.rsreads.Checklist
cargo test --workspace)cargo fmt --check)cargo clippy -- -W clippy::pedantic)Storagetrait, auth model, on-diskformat, or public CLI surface, an RFC has been accepted or is linked
below. Otherwise, an ADR captures the decision (link below).
ADR / RFC: n/a. The change makes the docs match the code.
Merging with #228
#228 also edits the Credential Handling list in
docs/manuals/10-security-model.md, on the line after the line that this PR changes. The PR that merges second keeps both lines.By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache License 2.0 and I agree to the Developer Certificate of
Origin (DCO). See CONTRIBUTING.md for details.