sonar.projectKey=developmentops_una-cms-service_AZEK2DdPQqpo5AhlDSpO
sonar.projectName=una-cms-service

# Only analyze custom code — excludes UNA core framework
sonar.sources=\
    public/modules/stride,\
    public/modules/boonex/okta_connect
sonar.sourceEncoding=UTF-8

# PHP configuration
sonar.php.version=8.1

# Skip non-analyzable files within source directories
sonar.exclusions=\
    **/*.min.js,\
    **/*.min.css

# Coverage report (ready for when CI pipeline generates it)
sonar.php.coverage.reportPaths=ci-reports/clover.xml

# Don't penalize coverage for SQL migrations, update scripts, templates, JS
sonar.coverage.exclusions=\
    **/install/sql/**,\
    **/updates/**,\
    **/template/**,\
    **/js/**,\
    public/modules/stride/k12/classes/StrideK12Module.php,\
    public/modules/stride/k12emailaudit/**,\
    public/modules/stride/k12lcc/classes/**

# Exclude mirrored update sources and boilerplate install configs from duplication checks.
sonar.cpd.exclusions=\
    public/modules/stride/k12notifications/updates/update_1.0.0_1.0.1/source/classes/StrideK12NotificationsModule.php,\
    public/modules/stride/k12notifications/updates/update_1.0.0_1.0.1/source/install/config.php,\
    public/modules/stride/k12emailaudit/install/config.php

# Ignore generic duplicated-string guidance in SQL files because UNA install/update SQL
# relies on parser-safe plain literals and MySQL session variables instead of PL/SQL-style constants.
sonar.issue.ignore.multicriteria=sqlS1192
sonar.issue.ignore.multicriteria.sqlS1192.ruleKey=plsql:S1192
sonar.issue.ignore.multicriteria.sqlS1192.resourceKey=**/*.sql

# Dependency check reports
sonar.dependencyCheck.jsonReportPath=ci-reports/dependency-check-report.json
sonar.dependencyCheck.htmlReportPath=ci-reports/dependency-check-report.html
