Files
ADconsle/CONTRIBUTING.md
T
kzbkowskiandClaude Sonnet 5 1126d96271
CI / PHP 8.2 (push) Failing after 2m46s
CI / PHP 8.3 (push) Failing after 59s
CI / PHP 8.4 (push) Failing after 1m7s
ADconsole v1.0.0
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
2026-09-08 23:14:39 +02:00

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

Ground rules

  1. No SQL storage for AD objects. All directory reads/writes go through LdapRecord. The database is for app infrastructure and panel_settings only.
  2. Every user-facing string is a translation key in both lang/pl/* and lang/en/*. No inline copy.
  3. Keep it dependency-light. No new runtime Composer/npm package without a clear reason in the issue.
  4. Least privilege. New AD operations must be documented in docs/active-directory.md with the exact right they require.
  5. 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 test and vendor/bin/pint --test — both must be green (DEPR in the test summary is fine; failed is not).
  • Update the relevant docs/ page and add a CHANGELOG.md entry 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.