Skip to content

Commit

Permalink
Npgsql and scorecard (#247)
Browse files Browse the repository at this point in the history
  • Loading branch information
stephenfuqua authored May 9, 2024
1 parent 2d136c7 commit 8d4a87d
Show file tree
Hide file tree
Showing 12 changed files with 140 additions and 15 deletions.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.github/**/* @Ed-Fi-Alliance-OSS/ed-fi-tech
19 changes: 19 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* SPDX-License-Identifier: Apache-2.0
* Licensed to the Ed-Fi Alliance under one or more agreements.
* The Ed-Fi Alliance licenses this file to you under the Apache License, Version 2.0.
* See the LICENSE and NOTICES files in the project root for more information.
*/

# SPDX-License-Identifier: Apache-2.0
# Licensed to the Ed-Fi Alliance under one or more agreements.
# The Ed-Fi Alliance licenses this file to you under the Apache License, Version 2.0.
# See the LICENSE and NOTICES files in the project root for more information.

version: 2
updates:
- package-ecosystem: nuget
directory: src/
target-branch: dependabot-updates
schedule:
interval: weekly
7 changes: 7 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ on:
pull_request:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true


permissions: read-all

env:
CONFIGURATION: "Release"
GA_USE_GITHUB_ENV: "true"
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ on:
push:
branches:
- main
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true


permissions: read-all

jobs:
analyze:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/create-pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ on:
required: true
default: 'false'

permissions: read-all

env:
CONFIGURATION: "Release"
PUBLISH_FOLDER: "./publish/"
Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ on:
- main
paths:
- 'src/**'
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions: read-all


jobs:
scan-actions:
Expand All @@ -35,4 +43,5 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- name: Dependency Review ("Dependabot on PR")
uses: actions/dependency-review-action@7bbfa034e752445ea40215fff1c3bf9597993d3f # v3.1.3
if: ${{ github.event_name == 'pull_request' && !github.event.repository.fork }}
uses: actions/dependency-review-action@9129d7d40b8c12c1ed0f60400d00c92d437adcce # v4.1.3
72 changes: 72 additions & 0 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Originally sourced from GitHub with implicit lack of license

name: Scorecard supply-chain security
on:
# To guarantee Maintained check is occasionally updated. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
schedule:
- cron: '15 23 * * 0'
push:
branches: [ "main" ]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

# Declare default permissions as read only.
permissions: read-all

jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Needed to publish results and get a badge (see publish_results below).
id-token: write
# Uncomment the permissions below if installing in a private repository.
# contents: read
# actions: read

steps:
- name: Checkout code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
persist-credentials: false

- name: Run analysis
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
with:
results_file: scorecard.sarif
results_format: sarif
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
# - you want to enable the Branch-Protection check on a *public* repository, or
# - you are installing Scorecard on a *private* repository
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
#repo_token: ${{ secrets.SCORECARD_TOKEN }}

# Public repositories:
# - Publish results to OpenSSF REST API for easy access by consumers
# - Allows the repository to include the Scorecard badge.
# - See https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories:
# - `publish_results` will always be set to `false`, regardless
# of the value entered here.
publish_results: true

# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: Upload artifact
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
with:
name: Scorecard SARIF file
path: scorecard.sarif
retention-days: 5

# Upload the results to GitHub's code scanning dashboard.
- name: Upload to code-scanning
uses: github/codeql-action/upload-sarif@cf7e9f23492505046de9a37830c3711dd0f25bb3 # codeql-bundle-v2.16.2
with:
sarif_file: scorecard.sarif
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Ed-Fi-Analytics-Middle-Tier

[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Ed-Fi-Alliance-OSS/Ed-Fi-Analytics-Middle-Tier/badge)](https://securityscorecards.dev/viewer/?uri=github.com/Ed-Fi-Alliance-OSS/Ed-Fi-Analytics-Middle-Tier)

The Analytics Middle Tier is a set of denormalized analytics views over the Ed-Fi ODS database tables, satisfying the user story:
> As a district data analyst, I want to build intelligent reporting on the Ed-Fi ODS with minimal learning curve and low risk of breaking changes, so that I can deliver timely data to educators and administrators.
Expand Down
13 changes: 13 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Security

If you find a significant vulnerability, or evidence of one, please report it
privately.

We prefer that you use the [GitHub mechanism for privately reporting a
vulnerability](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability).
Under the [main repository's security
tab](https://github.com/Ed-Fi-Alliance-OSS/Ed-Fi-Analytics-Middle-Tier/security), click "Report a
vulnerability" to open the advisory form.

If you have any further concerns that are not addressed by this process, please
submit a case through the [Ed-Fi Community Hub](https://success.ed-fi.org)
10 changes: 5 additions & 5 deletions build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
param(
# Command to execute, defaults to "Build".
[string]
[ValidateSet("Clean", "Build", "Publish", "CreateZip", "UnitTest", "IntegrationTest")]
[ValidateSet("DotnetClean", "Build", "Publish", "CreateZip", "UnitTest", "IntegrationTest")]
$Command = "Build",

[switch] $SelfContained,
Expand Down Expand Up @@ -78,7 +78,7 @@ $publishFddZipFile = "$publishFddDirectoryName-$Version.zip"
$publishScdZipFile = "$publishScdDirectoryName-$Version.zip"
$testProjectName = "EdFi.AnalyticsMiddleTier.Tests"

function Clean {
function DotnetClean {
Invoke-Execute { dotnet clean $solutionRoot -c $Configuration --nologo -v minimal }
}

Expand Down Expand Up @@ -198,7 +198,7 @@ function IntegrationTests {

function Invoke-Build {
Write-Host "Building Version $Version" -ForegroundColor Cyan
Invoke-Step { Clean }
Invoke-Step { DotnetClean }
Invoke-Step { AssemblyInfo }
Invoke-Step { Compile }
}
Expand All @@ -209,7 +209,7 @@ function Invoke-Publish {
}

function Invoke-Clean {
Invoke-Step { Clean }
Invoke-Step { DotnetClean }
}

function Invoke-PublishClean {
Expand All @@ -231,7 +231,7 @@ function Invoke-CreateZip {

Invoke-Main {
switch ($Command) {
Clean {
DotnetClean {
Invoke-Clean
Invoke-PublishClean
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<PackageReference Include="dbup-core" Version="5.0.37" />
<PackageReference Include="dbup-postgresql" Version="5.0.37" />
<PackageReference Include="dbup-sqlserver" Version="5.0.37" />
<PackageReference Include="Npgsql" Version="7.0.6" />
<PackageReference Include="Npgsql" Version="8.0.3" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,6 @@ public bool IsConnectionStringValid(out string errorMessage)
errorMessage = $"{Environment.NewLine}Please specify a data source using the Data Source or Server keyword.";
}

if (!connectionStringBuilder.IntegratedSecurity &&
(string.IsNullOrWhiteSpace(connectionStringBuilder.Username) ||
string.IsNullOrWhiteSpace(connectionStringBuilder.Password)))
{
errorMessage =
$"{errorMessage}{Environment.NewLine}Please specify an authentication method using an integrated security or providing a user id and password.";
}

if (string.IsNullOrWhiteSpace(connectionStringBuilder.Database))
{
errorMessage = $"{errorMessage}{Environment.NewLine}Please specify a database using the Database or Initial Catalog keyword.";
Expand Down

0 comments on commit 8d4a87d

Please sign in to comment.