1.1.0
a98ed0c Merge pull request #25 from cloudfoundry-incubator/godep-to-modules
54e99f3 Updates Release pipeline for Go 1.11
0418a78 Updates PR pipeline for Go 1.11
a8d86bb Revert "Adding ginkgo to Golang modules"
ba1e035 Tell Golang buildpack to use native go vendoring
ba86575 Adding ginkgo to Golang modules
2adb2ad There are performance concerns with Golang 1.12
1fa31a4 Appease go vet
4cf17ca Providing GOVERSION for CF go_buildpack
30df9a1 Migrate from Godep to native Golang modules
1257909 Merge pull request #24 from cloudfoundry-incubator/ci
cd01c0f Adds a new pull request pipeline
70b2871 Adds new release pipeline piepline
9b79ee0 Implement skip hostname verification, fix weird imports
6738aa0 Adds CI badge to README
6b1296e Splits integration tests from script that runs unit tests
d6e139e Fix struct string whitespaces
35d0fbf Adds environment variable to skip hostname verification
2aaa345 Update README.md
78841af Update README.md
5f44459 Remove unused vars from tests
1eb5107 add a docker file for local testing
885813a Remove v2 api
2b56eca Add tls support for database connections
b8aac04 Add additional testing for metrics endpoint
822896a Adds test dependencies to godeps
af8505c Fix godeps
8ec1477 Minor refactors to debug/metrics endpoint test
1cc0936 Adds go-metrics dependency to godeps
6c0e008 Serves metrics via /debug/metrics
246f7f3 Renames Mother to DBProvider
7d930d9 Refactors mailClient into Application from Mother
3728588 Remove logging of environment variables
62ccf3f Adds .idea to .gitignore
ed73977 Updates docs to notify V2 API Deprecation
6fc69d3 Updates notice
8a25108 Merge pull request #9 from winnab/patch-1
000b472 Merge pull request #8 from christopherclark/master
2d1eedb Merge pull request #10 from nodo/patch-1
fb4658f Further side effects due to golang URL parse change
a5611d4 URL parsing behaviour changed in go1.8
f333b1e Update to go1.8
bd62588 Update README.md
4d6893d Update walkthrough.md
0817978 Create NOTICE
8714254 Merge pull request #7 from cloudfoundry-incubator/only-use-go-buildpack
0b3f7a2 tweak log output
5c863b7 Fetch new uaa signing keys at an interval so we delete dropped keys
8dea5a9 Handle supporting different tokens signed with different keys
44f211f Re-vendor dependencies after warrant bump
0e6532f bump warrant dependency
ced7fa5 remove global instance of uaa public key
f076567 [#137449587] Bump rainmaker
7b41c0f Force JWTs to be signed with RSA - update warrant to support this
22b3f6b Manifest specifies Go buildpack
4409e10 V1 API wll return errors if it fails to persist the job
dc105fd Increase timeouts in the gobble queue tests
8aad59e [#127933611] Rerun godep to move dependencies into vendor/
2325e66 Removes goose migrations dependency
aac0710 Fixing up some tests for golang1.6 support
b9b4e4c Gets tests back to running state
10f3d98 Drops minor version in Godeps.json
60114b4 Update to Go 1.5.3
c0ae5d7 Update Godeps.json
f6ef68e Update README.md
7ab4a70 Emits counter metric when v2 deliveries are processed
4847f15 Renames transaction to connection in gobble.Queue.Enqueue
1632910 Adds heartbeat for job timeouts to gobble
bc8f11b Refactors services.TemplateDeleter into collections.Templates
1afa843 Refactors services.TemplateCreator into collections.Templates
9161c19 Refactor gobble.Queue.EnqueueWithTransaction -> Enqueue
4f5aa87 Calculate campaign status state including undeliverable count
f3a6ec5 Refactors response generation in v2/web/campaigns
edf69b9 Include the worker ID in log lines generated by background workers
cb99401 Includes undeliverable message counts in campaign status
4250e54 Removes existence checking from campaign creation
1a959c9 Skip space if not found when generating audience
41e62a8 De-dup all the things
57e7e10 Refactoring campaign job processor to support de-dup'ing
1be5dfc Removes unused fixtures file
fad36fb Removes return value from v2 enqueuer
afd8fb7 Refactors strategies for v2 into v2/horde pkg
d214326 Docs change
0b1a700 Delivery jobs in v2 are queued in a transaction
55188f5 v1 enqueuer consumes a private queueInterface
38f4ddf Adds regex to catch timestamp changes
4e7b469 Removes the sender component from the unsubscribe endpoints
c43ef36 Documents the correct scopes and endpoints for user unsubscribing
87a15c5 Updates warrant dependency
ccfce26 Documents the unsubscribe V2 API endpoints
91daf1f Documents the campagign status V2 API endpoint
718ab40 Removes the sender component from the campaign type endpoints:
65e8366 Eradicates a panic in the v2 campaign job processor.
3385ef5 Email multiple audience types at the same time
07652d6 Collections.Campaign.SendTo is map[string][]string
1e033f8 Send campaign to multiple orgs
932836c Allows campaigns to send to multiple spaces
4813fd9 Docs only generate diff when necessary
e2e02a4 Adds test coverage in v2 DeliveryJobProcessor
5d1f026 Do not call UAA if delivery does not have a user GUID
5806cce Allows campaigns to send email to multiple users
1e114a4 Renames postal/v1.Process -> postal/v1.DeliveryJobProcessor
b985447 Renames postal/v2.Workflow -> postal/v2.DeliveryJobProcessor
95b893e Renames postal/v2.Determiner -> postal/v2.CampaignJobProcessor
e951836 Accepts multiple emails recipients when sending a campaign
69345da Use the internal GUID generator in acceptance tests
2a031df Adds gouuid dependency
3534130 Adds an acceptance test for non-list campaign audiences
43d2813 Changes campaign creation to
1326330 Fixes a typo in the V2 API doc structure
9435230 Auto-generated V2 API docs now reflect correct required scopes
d86c687 Updates warrant dependency
d9f085c Updates warrant dependency
bfbfd31 Fixing test timing issue with request logging middleware
1975436 Rewrites the auto-generation of the V2 API docs:
684eea3 Removes the sender component from the URL for the campaign info endpoint
76adff0 Removes sender-id component of URL path to campaign status endpoint
8f71dbf Show scopes for each request in docs
5d973a7 Doc generator uses warrant to decode token
1204dc9 Breaks out template management into new v1/collections pkg
c11dbe7 Starts to remove v1/web/notify dependency from postal/v2 pkg
99c7bd9 Moves strategy determiner into postal/v2 pkg
b975bdf Moves common clock and guid generation code into top-level util pkg
2d1a45c Moves postal worker boot code into postal pkg
f2cacca Removes some unused interfaces
4849296 Splits up v1 and v2 background processing
e3175ba Moves some shared postal objects into common pkg
258b10f Removes postal.CampaignStatusUpdater
12af6a7 Update the Notifications API v2 docs
8c21885 Rename FindsUserGUIDs service to FindsUserIDs
d113901 Converts models.GUIDGenerator => models.IDGenerator
b95e620 Roll back to 1.5.0
f29b324 Upgrade to Go 1.5
25e1a08 Add _links to create campaign endpoint
3c2371a Adds _links to campaign_types GET
7d7b3ec Don't try to generate docs if docCollection is nil
ebfd78a Adds _links to campaign_types update
088a4d6 Adds links to campaigns status endpoint
6f05124 Adds links to campaign_type list endpoint
70ee41b Add HAL compliance to campaigns endpoint
e07d825 Adds links to campaign_type create endpoint
e477560 Fixes some language issues in the env var error message
ce06e0c Add a friendly description to the docs.
2b63794 Includes helpful message when app env vars cause panic
bd14e34 Updates application.NewEnvironment to return error instead of panicking
832cfe8 Updates viron dependency
dde5c14 Updated v2 API documentation blueprint
ebad146 Removes docs script
88f413a New script to update v2 API docs
b6c059e Add URL for experimental docs
62b0b72 Added auto-generated docs for other v2 API endpoints
227fa9d Moves message status updaters into respective v1 and v2 pkgs
d14f2ea Renames docs suite identifier
10847ca Create template response includes _links
567d354 Refactor templates and templates list responses
44cd642 GET templates returns _links
b094dea Use an env var to control doc generation
50ff58f Refactor acceptance client to streamline doc generation
de92073 Add prelim automatic generation of v2 API docs
bfe1c71 Moves template loaders into postal/v1 and postal/v2 pkgs
970d308 Listing templates returns _links for list and for each item
efdf9cb Splits template loader into v1 and v2 implementations
32a028a Adds _links to responses to template PUT and default template PUT
dae5cce Remove guid generator from v2 enqueuer
82e3243 Remove guid generation from v1 enqueuer
3b083ef Remove gouuid as a dependency
9e75e27 Replaces guid generator dependency with simpler implementation
e932342 Simplify acceptance client Do call
8f08a27 Removes some panics by rewriting how we marshal JSON
a49cd2e Use the JSON pkg raw message for metadata handling
c1c2b2f Changes waiting trigger for checking campaign status in acceptance test
a766d1c Add links to response when listing senders
d961e7b Refactor request-response buffer copying
6c827db Adds links to response when updating a sender
eb28dd7 Adds api version to logging when it is present
5b27522 Update template management:
2f3dc7e Use the default template
900b59e Refactor acceptance test of root links
4c34e46 Adds links to GET /senders/:sender_id endpoint
9bdf69d Adds links to POST /senders endpoint response
f943ccb Moves middleware helper out of init test
76d2c6c Add root handler for hypermedia documentation
ad773ea Save updates to the default template
49053d1 Remove an unsubscription for a user using a user token
4e79138 Unsubscribe a user using a user token
d2c1c76 Allows a default template to be retrieved
ffc99b6 Handle error cases when removing an unsubscribe
3852e2b Remove an unsubscription for a user using a client token
9b1fe4a Fixed pollution in acceptance test suite
ce0dbd7 Small refactors on unsubscribe workflow
fa677e5 As a v2 API user, I can unsubscribe a user using a client token
388c78f Fix campaign status retrieval to check sender
6827476 Starts to unwind the application.Mother object
fe1c877 Removes application.Mother.NotificationsFinder
6691f8c Removes application.Mother.Registrar
b491d79 Cleans up some more interfaces
b7f872f Cleans up some internal interfaces in postal
309d49c Removes explicit mail.ClientInterface interface
c7c9b8a Removes explicit cf.CloudControllerInterface
e6d4a9a Cleans up error writer
be4db76 Removes pointless models.TemplateFindError
aec3e20 Removes remaining postal error types in unused code
45acdc3 Removes unused postal.TemplateLoadError type
2c8fc21 Moves postal.CriticalNotificationError to v1/web/webutil pkg
bcc19c9 Moves postal.UAAScopesError to v1/web/webutil pkg
e9085d4 Moves all error types into errors.go in their pkg
0679304 Converts some more error types
f50db74 Converts error types to proper struct values
cd4bf54 Converts error types into proper struct values
84a0caf Use proper error structs for error types
03ee4eb Removes gobble pkg dependecy from v2/web pkg
5e1d6bd Attempts to fix some async test issues in v1/acceptance
c3dbab6 Fixes race condition in acceptance suite
e11485e Add queued message count to the campaign status endpoint
56c071a Includes retry messages count in status endpoint
2050b3a Removes top-level models pkg
c081189 Fixes inefficient query for getting user preferences
d01883c Remove panic if job is dequeued multiple times
6649cd6 User can view status of a campaign
2f3b69a Splits enqueuer into v1 and v2 versions
7052b88 Reduces the number of dependencies on db pkg
32ca75f Removes explicit services.TokenLoaderInterface interface
6f233ee Removes explicit services.TemplateUpdaterInterface interface
5b067a9 Removes explicit services.TemplateListerInterface interface
fdfe92d Removes explicit services.TemplateFinderInterface interface
a9fcdfa Removes explicit services.TemplateDeleterInterface interface
f988a4e Removes explicit services.TemplateCreatorInterface interface
26cc411 Removes explicit services.TemplateAssociationListerInterface interface
f19f236 Removes explicit services.TemplateAssignerInterface interface
e5f72fc Removes explicit services.StrategyInterface interface
14cc639 Removes explicit services.SpaceLoaderInterface interface
c379e8c Removes explicit services.RegistrarInterface interface
c0e0b07 Removes explicit services.PreferencesFinderInterface interface
d04ef8a Removes explicit services.PreferenceUpdaterInterface interface
2423739 Removes explicit services.OrganizationLoaderInterface interface
56264f2 Removes explicit services.NotificationsFinderInterface interface
de50fce Removes explicit services.FindsUserGUIDsInterface interface
4374c2a Renames services.uaaUsersGUIDsByScopeInterface -> services.uaaUsersGUIDsByScope
35118ee Renames services.uaaAllUsersInterface -> services.uaaAllUsers
6eabdcc Removes explicit services.EnqueuerInterface interface
3ae52c7 Removes explicit services.AllUsersInterface
1ec44f0 Removes unneeded package import from v2/web/campaigns
b009e5f Converts gobble queue mock to call-based
a1910bd Converts templates repo mock to call-based
21f47bc Converts uaa client mock to call-based
e41ecc6 Converts unsubscribes repo mock to call-based
b60774c Converts validator mock to call-based
87899ac Converts receipts repo mock to call-based
1ecdd0c Converts persistence provider mock to call-based
ed66698 Converts notifications finder mock to call-based
ed62d42 Removes mock mother as it is not used
9f3cef4 Converts kinds repo into call-based mock
93b8c83 Split delivery worker v1process out
eb25f97 Converts mail client mock into standard style
ce2b2df Add V2 API documentation for:
4e9a450 Return the campaign ID when retrieving it
ae809d4 Add edge case checks for campaign retrieval end-point
74a3c95 Added documentation for templates list endpoint.
801834f Add sender/client validation when creating a campaign
860aedc Add ability to get campaign details (without edge case coverage)
fb49f03 Add list of templates endpoint
d7b9c48 Returns a nice error message when updating a conflicting sender
a7a83df Add documentation for senders delete
1e19786 Allows senders to be deleted
b271d41 Adds documentation for update senders
d2de63c Converts guid generator into better mock style
461d772 Converts GlobalUnsubscribesRepo into better mock style
b0e5434 Converts FindsUserGUIDs into better mock style
a0beee7 Cleans up error writer mock
86365fc Converts database fake into more standardized mock
ae4ed11 Allow updating of a sender
cecabaa As a v2 API user, I can update a template
c8aa902 Allows api to send campaigns for email addresses
b837cb6 Allows v2 api to send campaigns to orgs
f50bea5 Sets up more standardized mocks for db connection and transaction
49d6a97 Cares a little bit less about how accurate time is
e2f977c Covers edge cases for sending campaign to space
ecbb892 Add ability to send campaign to space
1776f8e Validate critical_notifications.write scope on campaign
3d50d55 Update docs for campaign send, fix bug
1319af2 Handles error cases for strategy determiner
aeca236 Checks for existence of user before creating campaign
08bf343 Converts mocks.CloudController into standardized mock style
8cef46f Converts clients repo into mock
f2d1a41 Moves fakes into testing/mocks pkg
c1e0322 Moves TruncateTables into testing/helpers pkg
be2d9db Moves token generation into testing/helpers pkg
8cb10a0 Ignores a few more things when deploying to cf
53a8cdf Ignores the acceptance directories when deploying to cf
2e0af15 Confirms that campaign type exists before sending campaign
f513272 Confirms that the template exists before sending campaign
ac2ac99 Covers case of omitted template id when submitting campaign
e6ae4bf Refactors delivery worker retry logic into failure handler
35dfe61 Refactors updating message status in worker
33d88a5 Move packing logic on packer
b9ed842 Pass domain through to message
be83e3e Add ability to send Campaign
497f267 Expand the root for diego
0c86fe7 Add an acceptance test
299ad98 Removed unused error structs.
91367d2 Add list senders endpoint to the v2 API
0c636d4 Updated campaign types create/update to validate the template ID
2003f15 Cleans up some more db related stuff
a40c405 Cleans up some more db pkg dependencies
8e56c44 Changes ginkgo test name output to match package paths
14031a4 Moves models/migrations => db/migrations
89b1111 Removes unnecessary middleware dependencies
37183c8 Inverts dependency on middleware.RequestCounter
6dcb24f Copies web/middleware into v1 and v2 pkgs
623c8b6 Removes db pkg dependency from v1/web pkgs
bffe3f7 Removes db pkg dependency from v2/collections pkg
67cf689 Removes v1/web/webutil dependency from web pkg
661d3e1 Moves web/webutil pkg into v1/web/webutil
56c2033 Breaks apart the v1 and v2 router bits
07aaf14 Adds API documentation for GET and DELETE template
3bdec02 Allows users to delete templates
10971ad Fixes campaign type route for show endpoint to handle trailing slash
92358d4 Continue cleanup of error message formats
1955fdd Start to clean up error messages
de0a092 Edge cases for template create/get
0bbe004 Finish implementation of template retrieval for v2 api
d1b9414 Splits models into v1 and v2
7e97558 Refactor truncate tables in test inits
9cf03b0 Moves database, connection, and transaction out of models
cbd5112 Moves database setup, migration, and seeding off DB object
e7cbd0d Removes models pkg dependency from v2 handlers
2eb973b Cleans up some more fakes
c15a9a3 Cleans up fakes with better implementation
c9bedf7 Cleans up some more fake implementations
e86d6eb Cleans up some of the fakes implementations
ad82fc8 Moves acceptance/v1 => v1/acceptance and acceptance/v2 v2/acceptance
8306e7d Moves acceptance/servers => testing/servers
5192abc Moves acceptance/fixtures => testing/fixtures
9b16e5f Moves fakes => testing/fakes
e3252e5 Move services into the v1 subdirectory
35a696b Moves collections into v2/collections
a491bb0 Standardize error JSON format
f4442b2 Moves web packages into top-level version packages
d6e1edb Corrects handling of template metadata
00f5885 WIP for create template endpoint
975c29f Adds gorp.v1 for sql-migrate
00061c1 Updates github.com/rubenv/sql-migrate
39251c9 Updates gorp to latest version
d8fab24 Updated v2 API docs with create template endpoint
a428d6a Add create for templates to v2
b76cac2 Bumps timeout for gobble test to 10 seconds
f080cf6 Add domain as a template option
9881d64 Merge branch 'router'
50d1295 Fix conflicts
2842269 Introduces web.Muxer to move mux.Router out of routes
d1a1f26 Inverts the router dependency
2381cc1 Update v2 API campaign type get endpoint to:
784072d Standardize error JSON format
cab5f4f Update does not throw error on 0 updated
761c211 Key fields that were unkeyed
ba23768 Pass campaignType struct all the way to delete
d4374b8 Update documentation for delete in v2
52f928a Add delete endpoint for campaignType
9dc86c6 Refactored collection interfaces
d245a07 Add missing test coverage
a4f9dfe Update documentation for update campaign type endpoint.
caa6673 Change "can not" to cannot.
0d01a63 Cleanup campaign types update handler code.
42fa5b2 Final edge cases for campaign type update handler.
a7b8539 More edge cases for campaign type update handler
d1aa9f9 Handled some edge cases in campaign types update handler
a899b66 Set up update handler for campaign types.
5ce167a Add Update function in campaign types repo
632b10d Allows campaign types collection to handle updates
bc8af77 Reduces collections API to Get, Set, and List
bc18487 Removes optional values from acceptance test requests
af268d1 Changes v2 acceptance support client to look more like JSON
4b9487c Moves validation of API inputs up into handlers from collections
a6129d3 Begins work to add update campaign types
eac1b61 Convert campaign types collection to use pointers to allow nil values
756e328 Rename notification type to campaign type in acceptance test support
c8fe2cf Follow convention on database queries
6fd242f Eliminate panic on database list error
4ff9d45 Update collection to use error constructors.
42b1fb6 Made create campaign type error messages more human readable
af50cb0 Replace all mention of NotificationType with CampaignType
304d686 Changed all string occurrences of "notification-type"
4a6f010 Rename notification type to campaign type in model code
701e0ff Rename notification types to campaign types in web
b24f52a Rename notification type to campaign type in acceptance tests
0d0285a Rename the notification_types table to Campaign types
f691f70 Change notification type to campaign type in API
c73921d Add requested ID to error messages
137f87b Add documentation for show notification type
4468d86 Add id to sender not found on GEt notification type error message
7b7426d Add edge-case tests for the notification type get handler.
5165e3d Add edge-case tests for the notification types collection get function.
d0903c9 Add a get notification type endpoint to v2 of the API.
1e23c4b Documentation for the notification types list endpoint
11816af Add missing logger and authenticator
ccb0597 Add tests for edge-cases for create and list notification types.
ba94c54 Verify that the specified sender belongs to the current client when creating a notification type.
891303d Add an endpoint to list all notification types for the specified sender to v2 of the API.
87a7b79 Add an entry for the creation of notifcation types to the API v2 documentation.
be4127c Revert "Revert "Move the validation of the name and description for a notification type from the handler to the collection.""
87e7acc Revert "Revert "Add a create notification type endpoint to the v2 API""
0f3b5ef Revert "Add a create notification type endpoint to the v2 API"
01e2450 Revert "Move the validation of the name and description for a notification type from the handler to the collection."
ef02c41 Move the validation of the name and description for a notification type from the handler to the collection.
5b71fb7 Add a create notification type endpoint to the v2 API
5a94dd0 Moves all handlers into their respective v1 package
2cd73af Removes some middleware package dependencies
55cd4ab Moves all v1 routers into their own packages
6dd88e8 Moves all web middlewares into web/middleware package
3be793f Move senders and notificationtypes packages into web/v2 directory
7a1395a Moves v2 routers into their respective packages
0266b98 Change web router constructors to receive a config
2a3d648 Removes errant empty file
7a9128d WIP add create notification types endpoint
df00bc7 Updates README documentation for default scopes
cb17655 Add and update documentation for APIs
b38db19 Add get sender endpoint
85f8db6 Removes senders get handler test
dd20817 Adds endpoint to allow clients to create senders
93f3cd2 Adds a /info endpoint which returns the api version [#97938776]
da6d23e Rolls back to old implementation of uaa.AllUsers
d1de666 Remove non-zoned UAA client [#97314780]
3ba1544 Add missing files in previous commit
3165224 Remove old TokenLoader, rename ZonedTokenLoader to TokenLoader [#97314780]
8f13795 Respect Identity zones when sending to space or UAA scope [#97314780]
5a88b39 Make send notification to organization aware of UAA Identity Zones [#97314780]
e84301a Test sending notification to email works with Identity Zones [#97314780]
84b9323 Allow EveryoneStrategy to use Identity Zones [#97314780]
371542f Add warrant dependency
f0ce635 replace uaa-sso-golang with warrant and get emails for GUIDs
d0b3edb Migrate ZonedTokenLoader to use Warrant [#97314780]
cae2844 Add back some logging of time to load a token [#97314780]
38760e4 Updates extracting UAA host from the token to tolerate a URL path [#97314780]
d997179 Remove unused injected values
5ee32d1 Use zone-aware UAA calls in delivery_worker
2eba082 Removes direct usage of uaa-sso-golang in mother and application files
95336c8 Adds default UAA scopes read from the environment
107240d Removes services package dependency from postal package
008337c Merges web/params package into web/handlers package
5cfb846 Renames params objects to be more explicit about their purpose
775bad6 Merges web/middleware package into the web package
386d3ea Merges postal/strategies package into services package
77d9da9 Removes postal package dependency from postal/strategies package
88e0387 Makes repo interfaces public in their respective packages
d12fbc3 Removes models.UnsubscribesRepoInterface
24e9c9f Removes models.TemplatesRepoInterface
a38821d Removes models.ReceiptsRepoInterface
96aa7b0 Removes models.PreferencesRepoInterface
6caa075 Removes models.KindsRepoInterface
5fc3f4b Removes models.GlobalUnsubscribesRepoInterface
d4ac68d Gets rid of models.ClientsRepoInterface
9442253 Renames strategies.Mailer -> Enqueuer
c253040 Removes postal dependency from web/params package
6f65e70 Refactors strategies.Dispatch API
4ba2b6d Merges postal/utilities into services package
230dfa0 Moves web/services package to top-level
b58da7b Adds RouterPool to handle muxing across a pool of routers
a058e09 Removes unneeded router abstraction
eb3b430 Finishes splitting up the router into smaller, more focused routers
016d310 Starts to convert stack maps into proper routers
392298b Breaks up stacks into separate functions, including depencencies
fc6491c Breaks up stack in router into stacks based on paths
37170ab Resolves issue where file descriptors in the acceptance support client were being leaked
03f0e1d Does not start a QueueGauge if the instance index is not 0
c9ca5fb Cleans up some more stuff using gofmt -s
4d087d0 Allow http.Client to be specified in notifications client
542383b Simplifies some nested structures exposed by "gofmt -s"
22d2492 Compresses the error case branching logic in ErrorWriter
d7b332a Makes error message for missing space a little friendlier
7ec8438 Removes .travis.yml
621d40c Removes some extraneous notifications registration from acceptance suite
7af8ae6 Return a 404 when space cannot be found
773f334 Updates Gomega to include new matchers
74794a6 Outgoing emails contain X-CF-Notification-Request-Received header
214185e Fixes typo in smtp logging for message data
f200019 Reformats SMTP logging messages to fit lager format
0b72a33 Accomodate the fact that we have no router sometimes
3153b97 Adds vcap_request_id to notify response
47faa89 Adds VCAP request ID to (most) worker DB logs
93a1b15 Add VCAP request IDs to SMTP log messages (using lager)
177ce2a Updates fakes
19efbd7 Renames DBConn to Connection on fake
6a5f8ab Removes databaseAllocators from objs that do not need it
dfa19ab Converts notify everyone handler to use db allocator
36e105b Converts notify organization handler to use db from allocator
aec7ae1 Notify space now uses databaseAllocator
7c375a5 Converts notify uaa scope handler to use db allocator
b6ac1f7 Notify user gets a beautiful refactor
a06ee32 Refactors fake registrar and all the things that use it
cd86759 Refactors register_client_with_notifications
f99757b Refactors update notifications handler/service
aedda85 Converts update template handlers to use database allocator
c510dd4 Use databaseAllocator for prefs/register notifcations
0cb508b Converts notify by email handler to use context DB
5ce41f5 Converts list templates handler to use context DB
c2b1ddc Converts list template associations handler to use context DB
40facec Unexports struct fields from handler
679f2e1 Removes unneccessary struct field from handler
43a4790 Converts get preferences handlers to use context DB
8592cef Converts get messages handler to use db from context
ca9a6eb Converts get default template handler to use db from context
0a24346 Converts get all notifications handler to use db from context
365b662 Converts delete template handler to use DB from context
e9014c2 Converts create template handler to use database from context
104ac58 Converts template assigner handler to user middleware allocated DB
bf915cf Adds go-sqlmock package to godep
7be6691 Adds database allocator middleware to stack for all endpoints
d7212f3 Adds database allocator middleware
3c7cf11 Adds VCAP request ID to worker logging statements
2a7f716 Refactors fakes.Mailer to have better call object
6eb6160 Renames fakes.MailStrategy -> fakes.Strategy
d2a20dd Includes the VCAP request ID on jobs sent to worker queue
f366f85 Fixes date timestamp issue in mail package unit specs
3f6e9c7 Rewrites RequestLogging middleware to use lager.Logger
4639a04 Adds lager dependency to godeps
09969d7 Replaces boot logger with lager.Logger
b59a239 Prints nanosecond precision timestamp to message headers
43d67f7 Fixes issue with concurrent calls to client/kind repo Upsert methods
11fab00 Prints timestamp in mail headers when notification is sent
4cc9dcf Removes bin/ci and bin/env/ci as we no longer use them
7229c31 Updates README to show wildcards in paths more clearly
21d5040 Moves database migrations in acceptance tests to before suite
dae661c Fixes up env vars for test env
c452f0d Pulls models migrations out of new database
d459900 Uses boot logger to log server boot statement
88ae7fb Makes sure to always log queue length metrics, even when they are zeros
32160ad Updates queue gauge metrics to provide the correct names
68e6ea5 Updates queue gauge metric format to fit existing format better
fc47555 Adds new queue gauge to report queue metrics
836923a Adds queue gauge to stream info about length of queue
f220ba5 Fixes bug that caused too many sql.DB connections to be opened
42187cf Refactors gobble database initialization code to share DB conn
924ae80 Moves sql.DB connection construction outside of models pkg
4fbfa67 Updates LICENSE to mention the correct year and corporation
10994ad Moved some model repo code into gorp PreInsert/PreUpdate hooks
d38f25f Cleans up vars in acceptance tests
bb62fff Adds acceptance test of creating a template with bad vars
aa28213 Refactors unsubscribes repo to have set/get API
445a906 Uses request logging middleware instead of stack.Logging
7be825e Refactors tests for middleware in router
1c0289a Job unlocking is now implicit, based on active_at timestamp
2bbc89a Notifications background workers are multi-instance safe
fc0df17 Updates ROOT_PATH for development environment
8f9e35c Print out the invalid email address when logging that failure
924d075 Splits up logging into multiple loggers with request id prefix
dad746a Marks message status as undeliverable when necessary
6a01ae1 More updates for better logging in workers
da83c30 Fixes go vet linting issue with format strings in Log
54dee6a Improves logs for background workers, including worker ID
b493f09 Updates github.com/PuerkitoBio/goquery
0b11a79 Breaks up transaction loop in mailer when queueing jobs
93ff020 Updates code.google.com references
a67aef4 Updates readme to include new DB_MAX_OPEN_CONNS env var
211186e Limits the number of open DB connections
6be273c Ensures mail client verifies ssl with the correct config value
58e028d Merge pull request #3 from krishna-mk/krishna-mk-patch-1-walkthrough-1
36d3d34 Mail client sets internal client to nil in Error
2ebc70f Update README.md
dea97e5 Wraps endorsement org and space names in quotes
517f901 Chooses a free port as needed for running the notification server during acceptance tests
8d478da Updates API docs to indicate that /emails notifications can be sent with a kind_id assigned
7c92cd2 Fixes typo in list template associations documentation
c1a7444 References new rainmaker repo
d3da81b Updates README with correct examples for clients with scopes
392fc24 Updates request counter tags
dd4e84c Moves all metric request counting into a middleware
dbb3927 Turns UAAClient in mother into singleton
7e8e6d0 Renames support client libary service receivers
fc4d8e1 Moves notification client path helpers onto client library
a8bc96b Replaces acceptance test for user prefs with client-based ones
5d676d8 Removes a bunch of panic statements
f56ac2b Updates README
29e2984 Moves common delivery code into background worker
3a29673 Update API to better describe 24 lifetime of status messages
47ac83a Fixes valiant bug on fields tagged omitempty
3ce8219 Revert "Refactoring CreateReceipts to not N+1 the database"
451ead1 Adds migration and acceptance test coverage for metadata default values
9f0e4c8 Adds base64 encoded log line with message data used for testing the service
aa6a9ff Adds ReplyTo field to user acceptance test
85b4418 Removes source_description and kind_description from notify endpoint docs
1a65d3e Code gardening and updating support client
a73ae4d Fixes up valiant extra key validation to resolve regression
5e081a6 Finally fixed email content encoding
ec2a7f9 Updates messages endpoint docs
75c8523 Adds newline separating headers from email body
8383934 Missed dependency for gomail when making last commit
f93fcf3 Replaces hand-spun multipart email message implementation
26e673d Adds rainmaker dependency
0b31efd Replaces cf client code with rainmaker
5c58f7a Delivery worker logs when email addresses are missing or invalid
450bb7d Privatize delivery worker methods
b2fb893 Normalizes usage of "default" for indicating assignment to the default template
b61f8a0 Fixes documentation for status endpoints
142e348 Adds walkthrough for using notifications
8439d0b Adds Messages GC to remove old messages from DB
ae42d9b Document /messages/{messageID} endpoint
4816cbf Upsert message status when template pack fails
1f5845d Message status records now have updated_at field
d99c3c3 Delivery worker logs message status upsert errors
c50e42e Adds /messages/{messageID} endpoint to report delivery status
bc184f6 Change scope array logic in authenticator middleware
c158fdd Valiant errors use json field name if present
dd4f5ac User preferences gives helpful 422 when token is wrong
22c5c73 Updates README to remove MODEL_MIGRATIONS_PATH env var
bf35a72 Remove requirement for MODEL_MIGRATIONS_PATH env var
68da24e Documents global_unsubscribe field in user_preferences
4a66313 Updates API.md for PUT of a notification
c8277f4 Use valiant on params.Template
4b11888 Template POST and PUTs now validate syntax
6b7b5a4 Updates migration because Travis pukes on it
200f771 Fixes null updated time
426883e Refactor services to take only a models.Kind
ed4702a API consumers can update notifications
6a92148 Makes it so deliver does not panic on failed pack
ebe29dd Replaces acceptance test object with By func implementation
b328b57 Replaces acceptance test object with By func implementation
1d55b34 Replaces acceptance test object with By func implementation
3d82b8d Adds Endorsement field to templates
f31564d Fixes bug where POST /emails would cause empty kind to be created
daf4d02 Fixes issue that prevented resetting a template assignment
84c2b86 Removes md5 hash of encryptionKey
ec33118 Updates conceal dependency
443f0cc Quit SMTP server on error, reestablish connection
129683e Fixes issues with templates associations endpoint
cd60b37 Adds documentation for GET /templates/:template_id/associations endpoint
d94ee9c Adds endpoint to list template associations to clients and notifications
5437bb0 Rewrites notify organization acceptance test to use client
e610c3f Rewrites notify org role acceptance test to use client
eee58ed Renames acceptance tests to fit pattern
e71d2b7 Corrects documentation for registering notifications
f6cba79 Updates API docs to add missing documentation and fix erroneous title
9c0bac4 Cleans up some acceptance test code
f12c84a Runs migrations and seeds database only when running as instance 0
582c68c Moves default template ID to const, more cruft gone
ec21983 Removes old codepaths related to old templates system
c2da140 Moves to using default template out of DB
6d4cab9 Seeds the database with an updated template without marking as overridden
af5077c Retry the container runner for travis CI
d6ca070 Run travis builds on container infrastructure
69c5e5c Updates ginkgo dependency
25140d7 Switches over to json.RawMessage
596a0ba Seeds database with default template
cb0e50f Replaces test objects in acceptance tests with By func blocks
cf76369 Replaces test object with By func blocks in acceptance tests
44c4861 Replaces test object in acceptance test with By func blocks
1386aaa Replaces helper function in template assignment test with support client
dc3a162 Replaces in-file test helpers with support Client
2cc6a39 Reduces complexity of acceptance support client API
de33231 Splits up template CRUD test into seperate It blocks
a397819 Allows gobble queue wait time to be configured
766f30a Toggles acceptance test suite server output using TRACE env var
7549c71 Cleans up setup and teardown of acceptance tests
14aeff0 Updates README
9f4a751 Allows the default template to be updated
d5accf8 Fixes bug re: template metadata was not updating
303da28 Adds endpoint to read default template
eb40c30 Subject is [no subject] when not provided
15ab8d7 Removes ioutil.ReadAll usage
360fd81 Cleans up acceptance test suite method signatures
cce7dc2 Combines config pkg with application pkg
25eb330 Adds metadata field to templates
b7798fb Adds some better messaging for repo errors
09cab3b Fixes bugs that caused unknown clients and kinds to crash template assignment endpoint
0f424eb Enables sending of notifications using overriden templates
bf8261e Uses new templates when sending notifications to a user
a2b0ff5 Adds concept of support client for acceptance
47ed86a Replaces mother with fake in router tests
7ab9cfc Fixes another bin/unit exit code issue
2f45cc9 Fixes issue covering up test failures in bin/unit
7ecdc3d Run CI tests against go1.3.3
5c34574 Adds documentation for SMTP authentication mechanisms
7e34663 Allows for configuration of SMTP_AUTH_MECHANISM
ad42f31 Fixes migrations default value issue
ed2cb59 Added endpoint /clients/{client-id}/notifications/{notification-id}/template
0e21199 Added PUT /clients/{client-id}/template endpoint
dd58dfc Refactors notifications finder to move json creation
8df8c55 Get all notifications returns default for template
475d2de Updates API to describe Unicode escaping of template HTML
6784e66 Replaces registration of notifications in acceptance test suite
82d298c Removes "email" field for responses when sending emails
e45f8d2 Updates docs GET /templates endpoint
08ffff8 Standardizes return value ordering on acceptance test helpers
c4321f8 Adds metrics to CreateTemplates handler
56f3939 Adds GET /templates endpoint
23b1232 Adds scope auth check to deprecated DELETE /templates/templateName
bc614e6 Adds DELETE /templates/template-id endpoint
2a19b55 PATCH /user_preferences returns 422 if missing required field
0a57353 Fix compatibility issue with old version (1.2.2) of golang on Travis
66dde9c PATCH /user_preferences/guid returns 422 if missing required field
d11711c Missing validate-required tag defaults to false
bdee751 Adds 'valiant' package for validating JSON
9fa46f2 Adds custom error for 404 Template not found
5c79f87 Adds PUT /templates endpoint
a09ebc4 Adds GET endpoint for templates
ed53364 Removes overridden from being used in the code
39d4f28 Adds missing go-uuid dependency
3325293 Adds POST /templates endpoint
bd51113 Migrations become deterministic
d0d1b28 Revert "Post and Get template endpoints with new API"
47d5534 Post and Get template endpoints with new API - POST needs guid generator, waiting for spec - GET needs confirmation of file system default
a17497c GET /notifications now requires notifications.manage
4b79d44 Add API docs for GET /notifications
e589ed3 Made the acceptance test be deterministic!
367899b GET /notifications returns all notifications, grouped by client
676b6d9 Catches database errors when a transaction is committed
90615bc Returns 400 code when /notifications PUT data contains null
f0d9b7a Returns 400 code when invalid parameters in PUT to /notifications
a1e8342 Adds /notifications endpoint
9ee07b9 Subject Required now loads Subject Missing
833bc41 Updates docs to reflect subject as a required parameter
345b58c Updates docs for /everyone endpoint
7cbe325 Adds token to everyone strategy
709ff2a Forgot Godeps for UAA
e24a646 Added Everyone endpoint - send mail to everyone [#80470728]
1755696 No longer check client, like other upserts
ad591d8 Adds template name special character validation
44ae089 Adds default scope error in the right way
8e09745 Adds error when trying to send to a default scope
b3c3679 Updates docs, adds uaa-scopes notifications
5f8709e Updates return from UAA to match actual response [#80470584]
d6b16e6 Removes unused code [#82692754]
fd4eda6 Removes the usage of TypedGUID (HOORAY)
f0f3e66 Moves metrics logging to top of handlers
d535e0a Ignore acceptance on CF
f430732 Updates jwt dependency in Godeps
54bdd04 Creates endpoint for sending notification to all users in a UAA group
aa894ce Updates uaa-sso-golang to latest version
eaa07d6 Upgrades to go version 1.3.3
bb754b9 Replaces spaces with tabs
c231af0 Replaces env print with viron implementation
758f05e Allows notifications to be sent for a role within an organization
ca54d33 Tightens transaction within strategies.Mailer
307d934 Adds updated_at column to templates table
bcb9f50 Updates documentation for registration API endpoint
1e4160b Fixes documentation for PATCH /user_preferences endpoints
ddca4b0 Moves strategies.Trimmer out into new file
e3ec61a Reduces the number of TypedGUIDs
404f8ca Removes postal.TypedGUID from strategies
c8b5c10 Splits UserLoader into FindsUserGUIDs and UserLoader objects
1bedd30 Moves loaders to utilites package
718e34d Moves strategies into strategies subpackage
d22fa27 Separates space/org loader into separate loaders
a5e76b6 Removes some more references to template name magic strings
a7b0331 Takes first steps to reduce duplication
c8ed325 Renames fakes
2dc3ea6 Removes some duplicate fake names
94f7662 Updates docs, organization template details added
53ead0a Fixes bug in template name parsing
b0f928d Refactors uaa_guid_recipe into user,space,org recipes
77a2c08 Moves to post.RecipeInterface and UAARecipe
e8019a7 Uses constants in place of magic strings for template names
3e2c1b4 Refactors and fixes template finder implementation
94fdecc Adds conceal dependency
ec6099d Replaces cryptography package with conceal implementation
f06f88b Removed SelectInt on the connection interface
6f77bcf Tests previously untested code path for ContentSuffix
8f6fc13 Added ability to send notification to organization
682aea4 Adds notification worker logging of
778888f Added validation for template names
9d4d8f9 Added a new scope for template getting and setting
7f8a638 Template loader uses finder to return templates - finder looks at db for overrides - falls back to filesystem for defaults
6b0a3b7 Updates go-mysql driver
85c07ae Added migrations to support templates longtext
e496fca Updated and Added a Godep dependency
2c10eaf Makes notification type flexible
cfeba2a API link for templates from README
ab69632 Fixes README/API links
eaee1da Templates set endpoints can use empty html or text
230e2fa Documents API for template endpoints
401440d Adds endpoint for deleting an overridden template
e038088 Added pending acceptance test grabbing templates from DB
13cc485 Added ability to get email template [#80341132]
bdcd458 Slight refactor of passed in variables for template
8b8d737 Added endpoint to update or insert template
a6fd9c3 Implemented GET endpoint to returns templates
bb96170 Sets up get endpoint for default templates for space and user
6d2b45d Sets manifest.yml memory attribute to 64M
08eca56 Fixes go vet issue with printf directives
b375bab Fixes go vet output for bin/test
1de7ee0 Fixes bin/test script to fail if go vet finds issues
4db609e Runs travis build with go 1.2.2
750d7a1 Adds go vet as cmd for travis CI
1f4ff13 Workers log when they will retry sending failed messages
4819b61 Background workers log success or failure
95a131e Adds go vet to bin/test script
fd5d9f9 Exposed Space & Organization GUID - Also refactored org Guid to be GUID [#80425528]