Tags: djinn-ci/djinn
Tags
Release notes:
* Implement support for build pinnning, this will prevent artifacts on
pinned builds from being deleted during curation
* Fix bug that prevented build namespaces in the UI from linking to the
namespace
* Fix CSS bug that broke the horizontal scrollbar when viewing the
overview of a build
Changelog:
Andrew Pillar (18):
Fix CSS style bug
Use new OAuth2 login route
Load namespace owner for build's namespace
Fix broken scrollbar
Fix bug that didn't load in latest webhook deliveries correctly
Add dev revision for adding os to driver_type enum
Begin implementing pinned builds
Ignore builds that are pinned during artifact curation
Set user relation when loading build from URI
Render pushpin alongside pinned builds in UI
Expand integration test to include testing of pinning/unpinning builds
Respond with 405 on any non GET request to API endpoint
Add templated systemd service file for djinn-server
Store -dsn value in environment variable for ease of editing
Wrap variable in quotes
Bump required Go version
Run go mod tidy
Add integration test for artifact curation
General bug fixes and quality of life improvements
Changelog:
Andrew Pillar (11):
Correct manifest docs
Update local development tooling and guide
Fix up mgrt order execution
Redirect to the OAuth2 URL when logging in via a provider
Correctly check for namespace owner when accessing certain paths
Allow collaborators to create and view namespace webhooks
Load webhook author information when displayed
Use consistent styling for webhook output as build output
Expose namespace badge endpoint over API
Correctly check for API errors for collaborators accessing webhooks
Remove println
v1.2.0
Release notes:
* Implement variable masking
* Slugify job names
* Performance improvements around loading namespace builds
* General bug fixes
Changelog:
Andrew Pillar (61):
Generate random key for session ID
Build from main branch
Set DJINN_API_SERVER variable for integration tests
Load relations for tags on build.tagged event
Add revision for new table columns
Implement logic for creating and displaying masked variables
Run develop migrations as part of build
Passthrough mask parameter
Fix typo in error message
Add integration test for variable masking
Make variable unmasking togglable
Add sudo mode for privileged actions
Use sudo mode for variable unmasking and persist unmasked variables
Build from correct branch
Redirect back after unmasking using sudo_referer
Add support for toggling masking build variables
Fix unmask button styling
Formatting
Load user for parent namespace
Load user for parent namespace
Copy masked value from original variable
Use streaming transformation to mask variables in build output
Update deps
Merge new validation errors onto end of original errors
Initialize validation errors before merging
Flush the transform.Writer upon job completion
Add comment explaining lack of transformer
Set build relation on job
Connect stdout and stderr to job writer instead of driver writer
Add integration test for masking variables in build output
Commit transaction before submitting to queue
Only allow variable author to unmask a masked variable
Slugify job names
Remove realval field
Implement logic for unmasking variblaes in the namespace view
Left align SVG icon
Only load parent relations if we have one
Move revision from dev to schema
Keep revisions/dev directory even if empty
Build latest version of mgrt
Build from v3 branch of mgrt
Merge branch 'dev.varmask'
Document masked variables
Make read/write timeouts configurable
Pull from main branch
Use SELECT DISTINCT ON to get the latest namespace builds
Allow for per-user artifact cleanup threshold
Change object and artifact size type to BIGINT
Use the user cleanup limit for artifact curation
Document image server
Clean up curator code
More curator clean up
Don't keep track of curated users
Ignore fs.ErrNotExist errors on artifact deletion
Remove redundant code
Save unmasked variables to session
Update example config files
Set image server host in doc serve script
Document serving behind NGINX
Support downloading of images from public namespaces
Fix API documentation formatting
v1.1.0
Release notes:
This version adds support for namespace webhooks, image downloading from remote
URLs either via http(s) or sftp, automatic build ref-tagging, and better
handling of orphaned builds from worker restarts. Image storage is now also
partitioned on a per user basis.
Changelog:
Andrew Pillar (183):
Update tutorial to use QEMU driver
Correctly parse version information from git
Lookup queue producer correctly using manifest
Use a slightly better way of getting version information
Use sha instead of id from build trigger data
Add feature request issue template
Add bug report template
Update yarn dependencies
Ignore artifacts collected from offline runner
Correct .gitignore typo
Add local development guide to readme
Render build number on job page
Properly encode regenerated tokens
Don't trim the source filepath
Remove unused imports
Check for tag values after tag creation
Check if the correct scope is also set for the build/namespace
Attempt to redial on RSET failure
Only close the client on a redial
Use INTEGRATION_CONFIG to control whether integration tests run
Use base repo id in pull request hook
Order curated artifacts by DESC
Only apply scope constraint on API requests
Use EncodeToString on oauth app secret
Delete unused test file
Remove superfluous reset
Remove invalid close of client
Implement support for namespace webhooks
Remove unused variable
Use mgrt to setup database
Document djinn-server environment variables
Set user passwords and use correct database user
Use mgrt user for migrations
Add revision for database users
Correctly order commands for checking out the git ref
Include current time in default setup stage
Implement badge.svg endpoint for latest namespace build
Use correct ordering for setting the HTTP status
Implement encryption of webhook secrets
Automatically tag builds with git ref
Orphan a build if it has already started
Begin work on image downloads and webhook queue refactor
Fix broken test
Use dev branch in manifest
Use new queue API for dispatching events from the worker
Revert ref manifest change
Implement configuration for the djinn-consumer
Add -version flag to consumer
Rename url to source
Display image download status on image index
Use constant for QEMU mime type
Add download URL to image form
Use correct Unlock call
Correctly spread slice values
Set permissions in revision
go mod tidy
Fix up consumer bugs
Handle image downloads from HTTP and SFTP URLs.
Fix broken HTML
Create all directories for the filesystem store
gofmt -s -w
Create log.Queue for passing to curlyq for logging
gofmt -s -w
Grant correct permissions for djinn_consumer and djinn_server
Display download error on image index
General clean up of logic, and bug fixes
Register DownloadJob for gob encoding
Support partitioning of images on the worker side
Update deps
Update dist config
gofmt -s -w
Update .gitignore
Add tests for download URL encoding/decoding
Display if an image is a download
Grant necessary permissions to djinn_worker for build orphaning
Display delete button for images not downloaded
Log build ID at debug
Validate download URL
Gracefully handle server start failures
Log bind info only when bound to an address
Support namespace webhook events
Remove dead code
Use correct event name
Return image driver in JSON
Handle unmarshalling of Schedule type from JSON
Return ErrRecordNotFound on os.IsNotExist
Encode event type as an integer instead of binary
Specify the driver that is invalid
Clean up make script
Rename CurlyQ implementation to Redis
Add JSON struct tags to image download form
Check for ErrInvalidScheme after form validation
Document correct Accept header usage for objects and images
Add JSON struct tags to cron form
Rename URL to Source on DownloadJob, add Get to DownloadStore
Consume jobs from the same queue
Clean up build handler logic and check for ErrDriverDisabled
Put image downloads on jobs queue and general clean up
Rewrite integration tests
Set the build user to the namespace owner
Add ErrOwner error to denote an invalid namespace owner
Respond with JSON when Content-Type is for JSON
Expand invite webhook events
Remove unnecessary form field
Handle new invite events
Include namespace in all invite events
Use block cipher for webhook store
Use UUID for webhook event ids
Check for closed channel
Only query webhooks that are active
Clean up
Remove unneeded base and method check
Check for non-nil error before returning
Encode UUID to string
Add tests for webhooks
Update go.mod
Append local.dev to /etc/hosts for webhook tests
Call UUID.String() instead of hex.EncodeToString
Store delivery event as integer
Clean up test SDK
Check server log for errors
Expand integration tests
Use resource owner to partition block storage
Clean up webhook delivery UI
Clean up invite event data
Clean up tag event data
Rename crypto.Block to crypto.AESGCM
Support include statements for configuration
Dispatch event for when an image download completes
Clear server log on reach run
Pass database connection to invite event init func
Set CreatedAt on build creation
Append created tags to build in tag event
gofmt -s -w
Use memory queue for testing image download job
Load in build relations before execution
Set CreatedAt on cron creation
Set resource author
Simplify webhook secret deletion
Set the build trigger during creation
gofmt -s -w
gofmt -s -w
Document invites URL
Set UpdatedAt on key creation
Document webhook events
Protect against circular includes
Expand integration tests
Add djinn_consumer permissions
Update example config files
Document include directive
Fix up database revisions
Document consumer configuration and cleanup previous docs
Only os.Exit on non-zero exit code
Support downloading of artifacts over REST API
Document artifact downloading via the API
Cascade image_download deletions
Log fatal errors if the implement error interface
Support MultiDispatcher implementation of event.Dispatcher
Load build trigger on tag creation for the build.tagged event
Include repo_id and provider name in hook data
Clean up
Add trailing newline to hosts entry
Only update records for the given download
Make error message more specific
Document image downloads via API
Categorize revisions
Perform revision categories in manifest
Document _base directory for images
Update build manifest and permission revision
Fix revision typo
Set djinn_consumer password during setup
Explicitly set application/x-qemu-disk as the Content-Type
Collect server.log
Collect webhook log
Collect from correct location
Delete image from user's partition
Collect djinn-consumer artifact
Sanitize build and job output in case of binary characters
Add integration test for binary build output
Add webhook permissions
Sanitize null bytes with NUL string
Combine unmarshal errors with form validation errors
Use regular expressions in build tag routes