internal/middleware: add a middleware package

This adds a simple definition of middleware, along with a single
implementation: a Timeout middleware.  In a follow-up CL I'll use this
to add timeouts to user-facing handlers.

Updates b/128689909

Change-Id: Ie2078e4e3da45767c7ef38f1aab25b8da5b1cf14
Reviewed-on: https://team-review.git.corp.google.com/c/golang/discovery/+/443949
Reviewed-by: Andrew Bonventre <andybons@google.com>
4 files changed
tree: 07098528b80df8a3191dec0b9756b9da78e98653
  1. cmd/
  2. content/
  3. internal/
  4. migrations/
  5. .gitignore
  6. all.bash
  7. CONTRIBUTING.md
  8. go.mod
  9. go.sum
  10. LICENSE
  11. PATENTS
  12. README.md
README.md

Go Module Discovery Site

Getting Started

Requirements

Migrations

Migrations are managed with the golang-migrate/migrate CLI tool.

To run all the migrations:

migrate -source file:migrations -database "postgres://localhost:5432/discovery-database?sslmode=disable" up

To create a new migration:

migrate create -ext sql -dir migrations -seq <title>

This creates two empty files in /migrations:

{version}_{title}.up.sql
{version}_{title}.down.sql

The two migration files are used to migrate “up” to the specified version from the previous version, and to migrate “down” to the previous version. See golang-migrate/migrate/MIGRATIONS.md for details.