First public release. - docs: document the audit log, user offboarding, CSV export and the "require a reason for destructive actions" setting across README, docs/ and CLAUDE/AGENTS.md; note retention for panel_audit - docs: fill the publishing placeholders (repo URL, security contact, issue-template links) and add a semantic-versioning policy - move agent/contributor context into CLAUDE/ (AGENTS.md + a README); root CLAUDE.md is now a thin @-import pointer - add a favicon (shield-lock, matching the login screen) to the login page and the app layout - CHANGELOG: promote [Unreleased] to [1.0.0]; keep the earlier internal build as [0.1.0] Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UfuvfwexztdS7LDpGuKsuK
2.5 KiB
2.5 KiB
Contributing to ADconsole
Thanks for helping out. This is a small, focused project — a web UI for everyday Active Directory administration. Contributions that keep it small and sharp are very welcome.
Before you start
- Read
CLAUDE/AGENTS.md(the architecture in one page) anddocs/architecture.md. - By participating you agree to the
CODE_OF_CONDUCT.md. - For anything non-trivial, open an issue first so we can agree on the approach.
Ground rules
- No SQL storage for AD objects. All directory reads/writes go through
LdapRecord. The database is for app infrastructure and
panel_settingsonly. - Every user-facing string is a translation key in both
lang/pl/*andlang/en/*. No inline copy. - Keep it dependency-light. No new runtime Composer/npm package without a clear reason in the issue.
- Least privilege. New AD operations must be documented in
docs/active-directory.mdwith the exact right they require. - Security-sensitive by nature — think about what a hostile panel user or a compromised service account could do with your change.
Dev loop
composer install
cp .env.example .env && php artisan key:generate
php artisan migrate
php artisan test
vendor/bin/pint
See docs/development.md for the details (SQLite for dev,
the fake ldap guard in tests, the harmless DEPR tag, etc.).
Pull requests
- Branch from
main; keep the PR focused on one thing. - Include tests for logic changes. Feature tests may seed caches / fake the
guard rather than hitting a real DC (see
tests/Feature/DashboardTest.php). - Run
php artisan testandvendor/bin/pint --test— both must be green (DEPRin the test summary is fine;failedis not). - Update the relevant
docs/page and add aCHANGELOG.mdentry under Unreleased. - Describe the change, the motivation, and any AD permission / migration impact in the PR body.
Reporting bugs
Open an issue with: ADconsole version / commit, PHP version, how it's deployed
(Docker / bare metal), the exact error (with APP_DEBUG=true and the relevant
storage/logs/laravel.log lines — redact DNs, hostnames and account names),
and steps to reproduce.
Security issues
Do not open a public issue — see SECURITY.md.
Licence
By contributing you agree your work is released under the project's MIT Licence.