Commit graph

259 commits

Author SHA1 Message Date
Joseph Schorr
8aac3fd86e Add support for an external JWT-based authentication system
This authentication system hits two HTTP endpoints to check and verify the existence of users:

Existance endpoint:
GET http://endpoint/ with Authorization: Basic (username:) =>
    Returns 200 if the username/email exists, 4** otherwise

Verification endpoint:
GET http://endpoint/ with Authorization: Basic (username:password) =>
    Returns 200 and a signed JWT with the user's username and email address if the username+password validates, 4** otherwise with the body containing an optional error message

The JWT produced by the endpoint must be issued with an issuer matching that configured in the config.yaml, and the audience must be "quay.io/jwtauthn". The JWT is signed using a private key and then validated on the Quay.io side with the associated public key, found as "jwt-authn.cert" in the conf/stack directory.
2015-06-05 13:20:10 -04:00
Jimmy Zelinskie
e01bdd4ab0 triggers: metadata.commit_sha -> metadata.commit
This resolves an issue where the custom-git trigger's public facing
schema was not the same as the internal metadata schema. Instead of
breaking users, we rework the internal metadata schema to be the same as
the custom-git JSON schema. This commit also updates everything that
used `metadata.commit_sha` including the test database.
2015-06-02 15:32:28 -04:00
Jimmy Zelinskie
3ac884beb4 gitlab oauth 2015-05-02 17:54:48 -04:00
Joseph Schorr
c480fb2105 Work in progress: bitbucket support 2015-04-24 15:13:08 -04:00
Jimmy Zelinskie
02498d72ba almost all PR discussion fixes 2015-04-21 18:04:25 -04:00
Jimmy Zelinskie
93cd459460 Merge branch 'master' into git 2015-04-20 10:58:49 -04:00
Joseph Schorr
2815ea2723 Merge branch 'master' of github.com:coreos-inc/quay 2015-04-19 15:16:39 -04:00
Joseph Schorr
8714eb207a Merge branch 'actioncount' 2015-04-19 15:12:44 -04:00
Jimmy Zelinskie
ba2cb08904 Merge branch 'master' into git 2015-04-16 17:38:35 -04:00
Joseph Schorr
f19d2f684e Add ability to revert tags via time machine 2015-04-16 17:18:00 -04:00
Joseph Schorr
f8c80f7d11 Add a history view to the tags page. Next step will add the ability to revert back in time 2015-04-15 15:21:09 -04:00
Joseph Schorr
3f1e8f3c27 Add a RepositoryActionCount table so we can use it (instead of LogEntry) when scoring repo search results 2015-04-13 13:31:07 -04:00
Jimmy Zelinskie
c5272f3545 initdb: add custom trigger and refresh test.db 2015-03-27 11:23:49 -04:00
Jake Moshenko
201943ed1c Fix deadlocks with tags and garbage collection. 2015-03-24 18:00:04 -04:00
Jimmy Zelinskie
f6f93e9079 consolidate everything into one GitHub trigger 2015-03-19 17:12:27 -04:00
Jimmy Zelinskie
5a29218c5c Merge branch 'master' into git 2015-03-19 12:10:34 -04:00
Jimmy Zelinskie
46d7fce8d2 initdb: add new github trigger service to database 2015-03-18 17:34:40 -04:00
Joseph Schorr
afc8e95e19 Start on new tag view 2015-03-09 22:03:39 -07:00
Joseph Schorr
43ab838998 Merge branch 'newbuildview' 2015-03-05 16:17:29 -05:00
Joseph Schorr
5d81d9d287 Add a time machine test repo 2015-03-04 16:03:00 -05:00
Joseph Schorr
e227d7e526 Start on the new build view 2015-02-26 17:45:28 -05:00
Joseph Schorr
83e05d2342 Add tracking of the kind of temporary access tokens, so we can display if a pull/push by token is for a build worker 2015-02-17 12:35:16 -05:00
Joseph Schorr
bfb0784abc Add signing to the ACI converter 2015-02-04 15:29:24 -05:00
Joseph Schorr
6ed28930b2 Work in progress: Docker -> ACI conversion 2015-01-13 17:46:11 -05:00
Jimmy Zelinskie
716d7a737b Strip whitespace from ALL the things. 2014-11-24 16:07:38 -05:00
Joseph Schorr
d73747ce1d - Fix some other group_by clauses
- Fix garbage_collect for an empty list (fixes a test)
- Add a script which runs the full test suite against mysql and postgres (note: QueueTest's are broken for MySQL, but they obviously work in production, so they need to be fixed)
2014-11-13 12:51:37 -05:00
Joseph Schorr
158acd4f41 - Turn on foreign key constraint checking in the tests
- Change all ForeignKeyField's that refer to users to use our custom class, and mark those that allow robots
- Change robot delete to only execute the subset of queries necessary to actually delete robots
2014-11-07 12:05:21 -05:00
Joseph Schorr
c1398c6d2b - Add a log entry for repo verb handling and make the container usage calculation take it into account
- Move all the repo push/pull/verb logging into a central track_and_log method
- Readd images accidentally deleted in the last CL
- Make the uncompressed size migration script better handle exceptions
2014-10-29 15:42:44 -04:00
Jake Moshenko
8a37d63e35 Update the test db to use unique uuds for images storages. 2014-10-07 16:40:44 -04:00
Joseph Schorr
f38ce51943 Merge master into laffa 2014-10-07 14:03:17 -04:00
Jake Moshenko
5c18ffe67d Allow the namespace column to be null, and also non-unique. Fix the uncompressed size clobbering the size on the wire field. Add metadata constraints so that foreign key constraints get predictable names. Fix all downgrade migrations. 2014-10-02 10:46:20 -04:00
Joseph Schorr
039d53ea6c - Fix initdb
- Add ability to specific custom fields for manual running of build triggers and add a "branch name" selector for running github builds
2014-09-30 16:29:32 -04:00
Jake Moshenko
03190efde3 Phase 2 of migrating repo namespaces to referencing user objects, backfilling the rows without a value for namespace_user, and changing all accesses to go through the namespace_user object. All tests are passing, manual testing still required. 2014-09-24 18:01:35 -04:00
Joseph Schorr
ec484e3efc Move size and checksum updates into the metadata call 2014-09-23 15:49:28 -04:00
Jake Moshenko
11bb8e6448 Actually store the generated image storage in the database, and allow it to be garbage collected when the parent image storage is collected. 2014-09-18 17:26:40 -04:00
Jake Moshenko
c5ca46a14b Merge remote-tracking branch 'origin/master' into comewithmeifyouwanttowork
Conflicts:
	data/model/legacy.py
	static/js/app.js
2014-09-12 11:03:30 -04:00
Joseph Schorr
7c45aca405 Code review changes 2014-09-08 17:20:01 -04:00
Jake Moshenko
64480fd4ed Merge remote-tracking branch 'origin/master' into yellowalert
Conflicts:
	data/migrations/versions/82297d834ad_add_us_west_location.py
	test/data/test.db
2014-09-05 11:30:30 -04:00
Joseph Schorr
e028d4ae0a Merge master into branch 2014-09-04 18:08:18 -04:00
Joseph Schorr
3b72b26836 Merge branch 'master' into comewithmeifyouwanttowork 2014-08-28 20:50:13 -04:00
Joseph Schorr
6ec89bb179 Add Slack notification support 2014-08-26 22:09:56 -04:00
Joseph Schorr
a129aac94b Add ability to regenerate robot account credentials 2014-08-25 17:19:23 -04:00
Joseph Schorr
32ea1d194f Add support for the Hipchat room notification API 2014-08-19 17:40:36 -04:00
Joseph Schorr
35bd28a77e Add support for the Flowdock Team chat API: https://www.flowdock.com/api/push 2014-08-19 14:33:33 -04:00
Joseph Schorr
43b6695f9c Get team invite confirmation working and fully tested 2014-08-18 17:24:00 -04:00
Joseph Schorr
56d7a3524d Work in progress: Require invite acceptance to join an org 2014-08-15 17:47:43 -04:00
Joseph Schorr
2597bcef3f Add support for login with Google. Note that this CL is not complete 2014-08-11 15:47:44 -04:00
Joseph Schorr
7e8713171e - Change updated_tags into the expected dict, not a list
- Update the event code on both sides to expect the dict
- Add filter support to the string builder
2014-08-05 17:45:40 -04:00
Joseph Schorr
7de1dd7dc0 Merge branch 'master' into redalert 2014-07-28 18:35:39 -04:00
Joseph Schorr
34fc279092 Add e-mail authorization to the repository notification flow. Also validates the creation of the other notification methods. 2014-07-28 14:58:12 -04:00
Jake Moshenko
d4c41f2b11 Remove the insane repository. 2014-07-22 16:46:19 -04:00
Joseph Schorr
af31bde997 Add support for the remaining events to the frontend and the backend 2014-07-18 15:58:18 -04:00
Joseph Schorr
f7c154abb5 Get Quay notification support working in the notification methods 2014-07-18 14:12:20 -04:00
Joseph Schorr
8d7493cb86 Convert over to notifications system. Note this is incomplete 2014-07-17 22:51:58 -04:00
Joseph Schorr
a84fe0681a Start on data model changes and API changes for the new repository notification system 2014-07-16 16:30:47 -04:00
Joseph Schorr
5841c1237e Add an "insane" test repo 2014-07-15 15:13:58 -04:00
Jake Moshenko
dccd833dba Make sure we can not run initdb against prod or staging. 2014-07-07 15:35:29 -04:00
Jake Moshenko
4e5e8a08de Add a maintenance notification kind and make it of the level warning. 2014-06-27 19:18:27 -04:00
Jake Moshenko
bf98575feb Add the basics of geographic data distribution and get the tests to work. 2014-06-17 16:03:43 -04:00
Jake Moshenko
78c5aec5b9 Switch the checksums to use the registry computed value, remove all assumptions of namespaced paths for legacy storage, fix an upload race condition in the registry code. 2014-06-11 15:37:45 -04:00
Jake Moshenko
0ba4201020 Add a module which will create notifications for all users when the license is at its expiration period, and terminate the process when the license expires. 2014-05-29 11:24:10 -04:00
Jake Moshenko
f6726bd0a4 Merge branch 'ldapper'
Conflicts:
	Dockerfile
	app.py
	data/database.py
	endpoints/index.py
	test/data/test.db
2014-05-22 12:13:41 -04:00
Joseph Schorr
c0f3054781 Fix screenshot generation 2014-05-19 14:14:18 -04:00
Jake Moshenko
f60c73463a Fix the tests to work with the database proxy. 2014-05-13 15:26:13 -04:00
Jake Moshenko
5fdccfe3e6 Add an alembic migration for the full initial database with the data. Switch LDAP to using bind and creating a federated login entry. Add LDAP support to the registry and index endpoints. Add a username transliteration and suggestion mechanism. Switch the database and model to require a manual initialization call. 2014-05-13 12:17:26 -04:00
Jake Moshenko
a5a61576ae Revamp the logging a bit. Not quite done yet. 2014-05-01 19:44:28 -04:00
jakedt
3f42d15335 Merge remote-tracking branch 'origin/master' into tagyourit
Conflicts:
	static/css/quay.css
	static/js/graphing.js
	static/partials/view-repo.html
	test/data/test.db
2014-04-15 15:58:30 -04:00
jakedt
0827e0fbac Merge remote-tracking branch 'origin/master' into ncc1701
Conflicts:
	endpoints/web.py
	static/directives/signup-form.html
	static/js/app.js
	static/js/controllers.js
	static/partials/landing.html
	static/partials/view-repo.html
	test/data/test.db
2014-04-14 19:37:22 -04:00
jakedt
d39f3cc5d4 Fix the tests and implement a fake stripe. 2014-04-10 15:20:16 -04:00
jakedt
e87ffa20cf First attempt at making config loadable through string config overrides in an env variable. 2014-04-03 17:31:46 -04:00
Joseph Schorr
7c466dab7d - Add an analyze method on triggers that, when given trigger config, will attempt to analyze the trigger's Dockerfile and determine what pull credentials, if any, are needed and available
- Move the build trigger setup UI into its own directive (makes things cleaner)
- Fix a bug in the entitySearch directive around setting the current entity
- Change the build trigger setup UI to use the new analyze method and flow better
2014-04-02 23:33:58 -04:00
Joseph Schorr
9a79d1562a Change to store the pull robot on the repository build and only add the credentials to the queue item. This prevents the credentials from being exposed to the end user. Also fixes the restart build option 2014-04-01 21:49:06 -04:00
jakedt
d768b60a3c Merge remote-tracking branch 'origin/master' into tagyourit
Conflicts:
	test/data/test.db
2014-04-01 19:09:41 -04:00
jakedt
3525e383df Merge remote-tracking branch 'origin/master' into pullinprivate
Conflicts:
	test/data/test.db
2014-04-01 18:28:48 -04:00
Joseph Schorr
4f1ae25128 Make sure the TAR import system handles TAR paths with local directory references 2014-04-01 13:00:26 -04:00
Joseph Schorr
35f69b9f5b Add support for .tar.gz build packs in the build package viewer 2014-04-01 00:23:53 -04:00
Joseph Schorr
2006917e03 Add support for pull credentials on builds and build triggers 2014-03-27 18:33:13 -04:00
jakedt
302bfb27ae Merge remote-tracking branch 'origin/master' into tagyourit
Conflicts:
	endpoints/api.py
	static/js/app.js
	static/partials/view-repo.html
	test/data/test.db
	test/specs.py
	test/test_api_usage.py
2014-03-26 19:42:29 -04:00
Joseph Schorr
c82d1ffe98 Add ability for users to see their authorized applications and revoke the access 2014-03-24 20:57:02 -04:00
Joseph Schorr
f7c27f250b Add full application management API, UI and test cases 2014-03-20 15:46:13 -04:00
jakedt
c93c62600d Merge remote-tracking branch 'origin/master' into swaggerlikeus
Conflicts:
	data/database.py
	endpoints/api.py
	endpoints/common.py
	templates/base.html
	test/data/test.db
	test/specs.py
2014-03-19 15:39:44 -04:00
Joseph Schorr
d469b41899 Add an oauth authorization page 2014-03-14 18:57:28 -04:00
Joseph Schorr
578add3b9e Finish basic notifications system and verify it works for the "password_required" notification. 2014-03-12 16:05:32 -04:00
jakedt
25ceb90fc6 Add some sort of oauth. 2014-03-12 12:37:06 -04:00
Joseph Schorr
368a8da7db - Add data classes for notifications
- Add basic API for notifications
- Change the password required to be a notification
2014-03-12 00:49:03 -04:00
jakedt
fde96c736a Fix a problem with initdb and add a limit to the builds API. 2014-03-05 15:50:32 -05:00
Joseph Schorr
20ad666308 Add ability to tag images from the UI, including moving existing tags to different images 2014-02-28 00:12:09 -05:00
Joseph Schorr
a6128978cb Merge branch 'rustedbuilds' of https://bitbucket.org/yackob03/quay into rustedbuilds 2014-02-25 18:22:59 -05:00
Joseph Schorr
e687b4d2d4 Add logging descriptions for the new trigger logs 2014-02-25 18:22:55 -05:00
jakedt
c13f7cd9df Add the resource_key back to the repository build. 2014-02-25 18:22:02 -05:00
jakedt
de49ce151b Merge remote-tracking branch 'origin/master' into rustedbuilds 2014-02-25 17:00:38 -05:00
jakedt
4b689a7a7c Fix the translation of old ids to new ids, again. 2014-02-25 16:31:52 -05:00
Joseph Schorr
bc26029951 Add new log kinds for triggers 2014-02-25 14:11:20 -05:00
jakedt
d505a4edbb Slight tweak to initdb to have the subdir config. 2014-02-24 16:18:14 -05:00
jakedt
13dea98499 Prepare the build worker to support multiple tags and subdirectories. Change the build database config to accept a job config object instead of breaking out the parameters into independent blocks. 2014-02-24 16:11:23 -05:00
jakedt
d5304f7db0 Merge remote-tracking branch 'origin/master' into rustedbuilds
Conflicts:
	data/database.py
	endpoints/api.py
	endpoints/common.py
	test/data/test.db
2014-02-21 14:52:40 -05:00
jakedt
20a19fc05e Fix initdb. 2014-02-21 14:22:22 -05:00
jakedt
a63a49caa1 Fix up the shared base images stuff. 2014-02-20 22:26:10 -05:00
jakedt
9e426816a5 Pass trigger information on build status. Set up a trigger for the sample building repository. Allow to list the builds started from a trigger. Protect the callback with the proper auth for creating a trigger on a repo. 2014-02-19 16:08:33 -05:00
jakedt
f4642be11a Merge remote-tracking branch 'origin/allyourbaseimage'
Conflicts:
	test/data/test.db
	test/test_api_usage.py
2014-02-18 19:15:14 -05:00
Joseph Schorr
a897fb1dd3 Add tests for image sharing 2014-02-18 16:46:10 -05:00
jakedt
ed38bcdafc Merge remote-tracking branch 'origin/master' into rustedbuilds
Conflicts:
	test/data/test.db
2014-02-18 16:13:34 -05:00
jakedt
b5d4919364 Split out callbacks into their own blueprint. Add build trigger DB information and connect it with some APIs. Stub out the UI to allow for generation of triggers. Split out the triggers into a plugin-ish architecture for easily adding new triggers. 2014-02-18 15:50:15 -05:00
Joseph Schorr
bc0d51656a Add ability to see a build's build pack, including browsing and downloading of the contents if it is a zip 2014-02-17 17:28:20 -05:00
jakedt
bb48f733e2 Make the diffs show up in a predictable location. 2014-02-17 15:17:39 -05:00
jakedt
b619356907 Get the base image stuff working. Checkpoint before fixing the tests. 2014-02-16 17:38:47 -05:00
yackob03
85694dd110 Add a build display name, set it from the etag reported by s3 for file uploads. 2014-02-12 13:52:12 -05:00
yackob03
df389e81c7 Fix up the test endpoints with better fake data. Install them at a known location. Update the building test repository to point to the new fakes. 2014-02-05 20:01:23 -05:00
yackob03
cd1e1ec3b0 Merge remote-tracking branch 'origin/logcabin'
Conflicts:
	application.py
	requirements.txt
2014-01-31 19:33:38 -05:00
Joseph Schorr
62deddce24 Upgrade peewee 2014-01-30 21:35:39 -05:00
Joseph Schorr
0833c88065 Make testing much faster by using a save point, rather than recreating the database every test 2014-01-30 20:57:40 -05:00
yackob03
c13654bb52 First attempt at emitting logstash style logs. 2014-01-30 13:32:06 -05:00
yackob03
459f30c123 Merge remote-tracking branch 'origin/master' into umask
Conflicts:
	initdb.py
	test/data/test.db
2014-01-22 11:53:20 -05:00
yackob03
922dbc502e Merge branch 'umask' of ssh://bitbucket.org/yackob03/quay into umask 2014-01-21 17:13:16 -05:00
yackob03
ef15bfa661 Fix line length problems. 2014-01-21 17:13:11 -05:00
Joseph Schorr
3864fc3e88 Add logs support for the new default permissions model 2014-01-21 17:04:00 -05:00
Joseph Schorr
e17c3590a7 - Add model functions for working with prototypes
- Add API calls for working with prototypes
- Get UI for prototypes working (minus add)
2014-01-21 14:18:20 -05:00
yackob03
330051f7d9 First stab at applying prototypes. 2014-01-20 19:05:26 -05:00
yackob03
1f533edf95 Fix the superwide repository to not be supertall as well. Move it so that the image ids generated didn't move on other repos. 2014-01-20 17:48:25 -05:00
Joseph Schorr
4054ead45d Fix tree graph when there are many branches and they do not have a common root node. Also adds a test repo to check this case 2014-01-20 17:38:33 -05:00
yackob03
7b0cffa69c Add an email address in a nop maintainer command as a test. 2014-01-14 15:47:13 -05:00
yackob03
63899b8efd Add a NOP command in the commands test db as would exist in a Dockerfile build. 2014-01-14 15:28:24 -05:00
yackob03
e23c750bfb Harvest commands from the Docker json information and add to the database. 2014-01-13 16:32:51 -05:00
yackob03
53c079fdc4 Add the stripe id to the devtable user to suppress the notifications. 2014-01-10 12:39:23 -05:00
yackob03
393343bda4 Merge branch 'master' of ssh://bitbucket.org/yackob03/quay
Conflicts:
	initdb.py
2014-01-09 11:33:28 -05:00
Joseph Schorr
988c4cfffe Fix null log key values 2014-01-08 18:44:50 -05:00
yackob03
4234ceabe6 Merge remote-tracking branch 'origin/spartan'
Conflicts:
	test/data/test.db
2014-01-08 17:04:40 -05:00
Joseph Schorr
9da93c7caf Add frontend and API support for deleting tags. Model support is needed. 2014-01-06 15:20:58 -05:00
Joseph Schorr
0a63690e25 Add code for saving and displaying the size of images 2014-01-03 16:32:00 -05:00
Joseph Schorr
9a61903d28 Fix date time parameter on log_action to properly use the current time (for reals) 2013-12-03 16:48:44 -05:00
Joseph Schorr
afac41b3f2 Fix metadata field name 2013-12-02 22:29:54 -05:00
Joseph Schorr
91c2ab074a Add test log entries to initdb 2013-12-02 19:07:14 -05:00
Joseph Schorr
cca5daf097 Add support for full logging of all actions in Quay, and the ability to view and filter these logs in the org’s admin view 2013-11-27 02:29:31 -05:00
yackob03
b407c1d9fb Add robots to the entity search. 2013-11-20 18:23:59 -05:00
yackob03
026ed7ffb4 Start fleshing out support for robots. 2013-11-20 16:13:03 -05:00
yackob03
393534bfb4 Add an outside user to the orgrepo for the purpose of screenshots. 2013-11-07 23:29:58 -05:00
yackob03
52e82cfb10 Change the devtableorg to an org called buynlarge. 2013-11-07 22:43:43 -05:00
yackob03
6d9207d23a Check in the new test db with the reader user. 2013-11-06 23:21:54 -05:00
yackob03
2cd98fc58e Make the app config more powerful in terms of injecting fake dependencies. Refactor the tests to use metaclasses and to actually all run. 2013-11-06 23:21:12 -05:00
yackob03
db59b5bf9c Add some tests to verify we're not leaking anything to completely public users (we're not) 2013-11-06 17:09:22 -05:00
yackob03
22dd031f91 Add a user called freshuser that doesn't belong to anything. 2013-11-05 17:09:50 -05:00
yackob03
ac71822352 Add a description field to teams. 2013-11-04 16:57:20 -05:00
yackob03
dd77ebd64f Next batch of backend permissions for orgs. 2013-11-04 15:42:08 -05:00
yackob03
4c0f987af3 Flesh out some of the organization methods and fix the models. 2013-11-01 19:34:17 -04:00
yackob03
78d2d6cad0 Add a test endpoint that allows us to manually create builds. Add access tokens to the build data. 2013-10-25 18:17:43 -04:00
yackob03
684ce83058 Add a test api to test repositories which are currenlty building. 2013-10-25 15:47:34 -04:00
yackob03
3ea0d5cf20 Make the IDs in the test DB the proper length. 2013-10-18 20:35:14 -04:00
yackob03
6bebfcc3a1 Update the sample data to be more interesting. 2013-10-18 20:18:23 -04:00
yackob03
0565871ee6 Randomize the diffs a little bit better. 2013-10-18 18:28:37 -04:00
yackob03
3d0b165de9 Check in diffs for the test db. Try to make the test db identifiers predictable. 2013-10-18 16:36:11 -04:00