houston-core 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/api_tokens_controller.rb +63 -0
- data/app/controllers/application_controller.rb +18 -0
- data/app/models/api_token.rb +18 -0
- data/app/models/persistent_trigger.rb +8 -4
- data/app/models/user.rb +1 -0
- data/app/views/actions/_actions.html.erb +2 -0
- data/app/views/actions/index.html.erb +1 -1
- data/app/views/actions/show.html.erb +2 -0
- data/app/views/api_tokens/_form.html.erb +51 -0
- data/app/views/api_tokens/edit.html.erb +7 -0
- data/app/views/api_tokens/index.html.erb +44 -0
- data/app/views/api_tokens/new.html.erb +7 -0
- data/app/views/errors/index.html.erb +2 -0
- data/app/views/layouts/_navigation.html.erb +2 -0
- data/config/routes.rb +12 -0
- data/db/migrate/20181102202848_create_api_tokens.rb +11 -0
- data/db/structure.sql +169 -100
- data/lib/houston/boot/triggers.rb +4 -0
- data/lib/houston/version.rb +1 -1
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b40de6cc11ff71d0ad16e3711163e58834ae5abd
|
4
|
+
data.tar.gz: 5063b0c6c7f5b5d5acc6a2e55d4d64a4127c5f67
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 896255148b8824ed70c17dfd7fa9a43422667b53f8a909cc023f4afbca1f75c5871bc3e2494e0f32ee9078962719c73438f6839b209b077b86eefa65dbd23435
|
7
|
+
data.tar.gz: f618a5f488697b353a8c410079b4a6d974620b5d2da75d73d4f3d2f73a18320d75ec93161852186ed1c3a066aaaff87e7b516a2081dd3cc9c6b898736ed56c04
|
@@ -0,0 +1,63 @@
|
|
1
|
+
class ApiTokensController < ApplicationController
|
2
|
+
before_action :authenticate_user!
|
3
|
+
before_action :find_api_token, only: [:edit, :update, :destroy]
|
4
|
+
|
5
|
+
def index
|
6
|
+
@title = "API Tokens"
|
7
|
+
authorize! :read, :all_api_tokens
|
8
|
+
@api_tokens = ApiToken.all.preload(:user)
|
9
|
+
end
|
10
|
+
|
11
|
+
def mine
|
12
|
+
@title = "My API Tokens"
|
13
|
+
authorize! :create, ApiToken
|
14
|
+
@api_tokens = current_user.api_tokens
|
15
|
+
render action: :index
|
16
|
+
end
|
17
|
+
|
18
|
+
def new
|
19
|
+
@title = "New API Token"
|
20
|
+
authorize! :create, ApiToken
|
21
|
+
@api_token = ApiToken.new
|
22
|
+
end
|
23
|
+
|
24
|
+
def create
|
25
|
+
@api_token = current_user.api_tokens.build(params.require(:api_token).permit(:name))
|
26
|
+
authorize! :create, @api_token
|
27
|
+
|
28
|
+
if @api_token.save
|
29
|
+
redirect_to edit_api_token_path(@api_token)
|
30
|
+
else
|
31
|
+
render action: :new, error: @api_token.errors.full_messages.to_sentence
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def edit
|
36
|
+
@title = "Edit API Token"
|
37
|
+
authorize! :update, @api_token
|
38
|
+
end
|
39
|
+
|
40
|
+
def update
|
41
|
+
authorize! :update, @api_token
|
42
|
+
|
43
|
+
if @api_token.update_attributes(params.require(:api_token).permit(:name))
|
44
|
+
redirect_to my_api_tokens_path
|
45
|
+
else
|
46
|
+
render action: :new
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def destroy
|
51
|
+
authorize! :destroy, @api_token
|
52
|
+
|
53
|
+
@api_token.destroy
|
54
|
+
redirect_to my_api_tokens_path, notice: "Deleted API Token \"#{@api_token.name}\""
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def find_api_token
|
60
|
+
@api_token = ApiToken.find(params[:id])
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
@@ -5,6 +5,7 @@ class ApplicationController < ActionController::Base
|
|
5
5
|
# For APIs, you may want to use :null_session instead.
|
6
6
|
protect_from_forgery with: :exception
|
7
7
|
|
8
|
+
before_action :token_authenticate!
|
8
9
|
around_action :with_current_project
|
9
10
|
|
10
11
|
|
@@ -84,6 +85,23 @@ class ApplicationController < ActionController::Base
|
|
84
85
|
|
85
86
|
|
86
87
|
|
88
|
+
def token_authenticate!
|
89
|
+
return if current_user
|
90
|
+
|
91
|
+
token = request.authorization[/\ABearer (.*)\z/, 1] if request.authorization
|
92
|
+
user = User.joins(:api_tokens).find_by(api_tokens: { value: token }) if token
|
93
|
+
return unless user
|
94
|
+
|
95
|
+
@current_user = user
|
96
|
+
@authenticated_via_token = true
|
97
|
+
end
|
98
|
+
|
99
|
+
def authenticated_via_token?
|
100
|
+
@authenticated_via_token == true
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
|
87
105
|
def api_authenticate!
|
88
106
|
return if current_user
|
89
107
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class ApiToken < ActiveRecord::Base
|
2
|
+
has_secure_token :value
|
3
|
+
|
4
|
+
belongs_to :user
|
5
|
+
|
6
|
+
validates :user_id, :name, :value, presence: true
|
7
|
+
|
8
|
+
before_validation :generate_value, on: :create
|
9
|
+
|
10
|
+
attr_readonly :user_id
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def generate_value
|
15
|
+
self.value = ApiToken.generate_unique_secure_token
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -36,13 +36,13 @@ class PersistentTrigger < ActiveRecord::Base
|
|
36
36
|
|
37
37
|
|
38
38
|
def register!
|
39
|
-
|
40
|
-
Houston.config.triggers.
|
39
|
+
return if registered_trigger
|
40
|
+
@registered_trigger = Houston.config.triggers.create(type, value, action, params.merge(trigger: self), persistent_trigger_id: id)
|
41
41
|
end
|
42
42
|
|
43
43
|
def unregister!
|
44
|
-
|
45
|
-
Houston.config.triggers.delete(
|
44
|
+
return unless registered_trigger
|
45
|
+
Houston.config.triggers.delete(registered_trigger)
|
46
46
|
end
|
47
47
|
|
48
48
|
|
@@ -53,4 +53,8 @@ private
|
|
53
53
|
errors.add :action, "#{action.inspect} is not defined"
|
54
54
|
end
|
55
55
|
|
56
|
+
def registered_trigger
|
57
|
+
@registered_trigger ||= Houston.config.triggers.detect { |trigger| trigger.persistent_trigger_id == id }
|
58
|
+
end
|
59
|
+
|
56
60
|
end
|
data/app/models/user.rb
CHANGED
@@ -6,6 +6,7 @@ class User < ActiveRecord::Base
|
|
6
6
|
|
7
7
|
has_many :roles, class_name: "TeamUser", dependent: :destroy
|
8
8
|
has_and_belongs_to_many :teams
|
9
|
+
has_many :api_tokens, dependent: :destroy
|
9
10
|
has_many :authorizations, dependent: :destroy
|
10
11
|
has_many :triggers, class_name: "PersistentTrigger", dependent: :destroy
|
11
12
|
has_and_belongs_to_many :followed_projects, -> { unretired }, join_table: "follows", class_name: "Project"
|
@@ -17,7 +17,9 @@
|
|
17
17
|
<%= action.error.message %>
|
18
18
|
<% end %>
|
19
19
|
</td>
|
20
|
+
<% if can?(:run, Action) %>
|
20
21
|
<td class="action-retry"><%= button_to "Retry", retry_action_path(action), class: "btn-retry btn btn-mini btn-default" %></td>
|
22
|
+
<% end %>
|
21
23
|
<td class="table-margin"></td>
|
22
24
|
</tr>
|
23
25
|
<% end %>
|
@@ -48,7 +48,7 @@
|
|
48
48
|
<td class="action-duration" data-position="0">—</td>
|
49
49
|
<% end %>
|
50
50
|
<td class="action-run-now">
|
51
|
-
<% if action[:required_params].empty? %>
|
51
|
+
<% if action[:required_params].empty? && can?(:run, Action) %>
|
52
52
|
<%= button_to "Run now", run_action_path(slug: action[:name]), :class => "btn btn-default" %>
|
53
53
|
<% end %>
|
54
54
|
</td>
|
@@ -19,7 +19,9 @@
|
|
19
19
|
<th class="action-params">Params</th>
|
20
20
|
<th class="action-succeeded">Succeeded</th>
|
21
21
|
<th class="action-exception">Exception</th>
|
22
|
+
<% if can?(:run, Action) %>
|
22
23
|
<th class="action-retry">Retry</th>
|
24
|
+
<% end %>
|
23
25
|
<td class="table-margin"></td>
|
24
26
|
</tr>
|
25
27
|
</thead>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<%= form_for @api_token, html: {class: "form-horizontal"} do |f| %>
|
2
|
+
<fieldset>
|
3
|
+
<div class="control-group">
|
4
|
+
<%= f.label :name, class: "control-label" %>
|
5
|
+
<div class="controls">
|
6
|
+
<%= f.text_field :name, class: "text_field" %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<% if @api_token.persisted? %>
|
11
|
+
<div class="control-group">
|
12
|
+
<%= f.label :value, class: "control-label" %>
|
13
|
+
<div class="controls">
|
14
|
+
<%= f.text_field :value, class: "text_field", readonly: true %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
</fieldset>
|
19
|
+
|
20
|
+
<div class="form-actions">
|
21
|
+
<%= f.submit nil, class: "btn btn-primary" %>
|
22
|
+
<%= link_to "Cancel", my_api_tokens_path, class: "btn" %>
|
23
|
+
|
24
|
+
<% if @api_token.persisted? && can?(:destroy, @api_token) %>
|
25
|
+
<button class="btn btn-delete btn-danger" id="delete_api_token_button">Delete</button>
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
<% content_for :javascripts do %>
|
31
|
+
<script type="text/javascript">
|
32
|
+
$(function() {
|
33
|
+
<% if @api_token.persisted? && can?(:destroy, @api_token) %>
|
34
|
+
$('#delete_api_token_button').click(function(e) {
|
35
|
+
e.preventDefault();
|
36
|
+
App.confirmDelete({
|
37
|
+
resource: 'API Token',
|
38
|
+
message: 'This will delete the API Token "<%= @api_token.name %>".',
|
39
|
+
url: <%=raw api_token_path(@api_token).to_json %>
|
40
|
+
});
|
41
|
+
});
|
42
|
+
<% end %>
|
43
|
+
|
44
|
+
<% if @api_token.persisted? %>
|
45
|
+
$('#api_token_value').select();
|
46
|
+
<% else %>
|
47
|
+
$('#api_token_name').select();
|
48
|
+
<% end %>
|
49
|
+
});
|
50
|
+
</script>
|
51
|
+
<% end %>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<% content_for :title do %>
|
2
|
+
<h1 class="project-banner space-below">
|
3
|
+
<%= @title %>
|
4
|
+
|
5
|
+
<%= link_to "New API Token", new_api_token_path, class: "btn btn-primary" if can?(:create, ApiToken) %>
|
6
|
+
</h1>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<div class="nomargin">
|
10
|
+
<table id="api_tokens" class="table table-sortable table-striped">
|
11
|
+
<thead>
|
12
|
+
<tr>
|
13
|
+
<td class="table-margin"></td>
|
14
|
+
<td class="user-avatar"></td>
|
15
|
+
<th class="user-name sort-desc">User</th>
|
16
|
+
<th class="api-token-name">Name</th>
|
17
|
+
<td class="table-margin"></td>
|
18
|
+
</tr>
|
19
|
+
</thead>
|
20
|
+
<tbody>
|
21
|
+
<% @api_tokens.each do |api_token| %>
|
22
|
+
<tr class="api_token">
|
23
|
+
<td class="table-margin"></td>
|
24
|
+
<td class="user-avatar"><%= avatar_for(api_token.user, size: 32) %></td>
|
25
|
+
<td class="user-name">
|
26
|
+
<span class="first-name"><%= api_token.user.first_name %></span>
|
27
|
+
<span class="last-name"><%= api_token.user.last_name %></span>
|
28
|
+
</td>
|
29
|
+
<td class="api-token-name"><%= link_to api_token.name, edit_api_token_path(api_token) %></td>
|
30
|
+
<td class="table-margin"></td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
33
|
+
</tbody>
|
34
|
+
</table>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
|
38
|
+
<% content_for :javascripts do %>
|
39
|
+
<script type="text/javascript">
|
40
|
+
$(function() {
|
41
|
+
$('#api_tokens').tablesorter();
|
42
|
+
});
|
43
|
+
</script>
|
44
|
+
<% end %>
|
@@ -18,7 +18,9 @@
|
|
18
18
|
<th class="action-params">Params</th>
|
19
19
|
<td class="action-succeeded"></td>
|
20
20
|
<th class="action-exception">Exception</th>
|
21
|
+
<% if can?(:run, Action) %>
|
21
22
|
<th class="action-retry">Retry</th>
|
23
|
+
<% end %>
|
22
24
|
<td class="table-margin"></td>
|
23
25
|
</tr>
|
24
26
|
</thead>
|
@@ -29,6 +29,7 @@
|
|
29
29
|
<% if can?(:read, :all_authorizations) %>
|
30
30
|
<li class="divider"></li>
|
31
31
|
<li><%= link_to "Authorizations", main_app.authorizations_path %></li>
|
32
|
+
<li><%= link_to "API Tokens", main_app.api_tokens_path %></li>
|
32
33
|
<% end %>
|
33
34
|
<% end %>
|
34
35
|
</ul>
|
@@ -43,6 +44,7 @@
|
|
43
44
|
<% if can?(:create, Authorization) %>
|
44
45
|
<li class="divider"></li>
|
45
46
|
<li><%= link_to "My Authorizations", main_app.my_authorizations_path %></li>
|
47
|
+
<li><%= link_to "My API Tokens", main_app.my_api_tokens_path %></li>
|
46
48
|
<% end %>
|
47
49
|
<li class="divider"></li>
|
48
50
|
<li><%= link_to "Sign out", main_app.destroy_user_session_path %></li>
|
data/config/routes.rb
CHANGED
@@ -76,6 +76,18 @@ Rails.application.routes.draw do
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
+
# API Tokens
|
80
|
+
|
81
|
+
get "api_tokens" => "api_tokens#index", as: :api_tokens
|
82
|
+
get "my/api_tokens" => "api_tokens#mine", as: :my_api_tokens
|
83
|
+
get "api_tokens/new" => "api_tokens#new", as: :new_api_token
|
84
|
+
post "api_tokens" => "api_tokens#create"
|
85
|
+
get "api_tokens/:id/edit" => "api_tokens#edit", as: :edit_api_token
|
86
|
+
patch "api_tokens/:id" => "api_tokens#update", as: :api_token
|
87
|
+
delete "api_tokens/:id" => "api_tokens#destroy"
|
88
|
+
|
89
|
+
|
90
|
+
|
79
91
|
# Actions
|
80
92
|
|
81
93
|
get "actions", to: "actions#index", as: :actions
|
data/db/structure.sql
CHANGED
@@ -2,14 +2,15 @@
|
|
2
2
|
-- PostgreSQL database dump
|
3
3
|
--
|
4
4
|
|
5
|
-
-- Dumped from database version
|
6
|
-
-- Dumped by pg_dump version
|
5
|
+
-- Dumped from database version 10.5
|
6
|
+
-- Dumped by pg_dump version 10.5
|
7
7
|
|
8
8
|
SET statement_timeout = 0;
|
9
9
|
SET lock_timeout = 0;
|
10
10
|
SET idle_in_transaction_session_timeout = 0;
|
11
11
|
SET client_encoding = 'UTF8';
|
12
12
|
SET standard_conforming_strings = on;
|
13
|
+
SELECT pg_catalog.set_config('search_path', '', false);
|
13
14
|
SET check_function_bodies = false;
|
14
15
|
SET client_min_messages = warning;
|
15
16
|
SET row_security = off;
|
@@ -28,8 +29,6 @@ CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
|
28
29
|
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
|
29
30
|
|
30
31
|
|
31
|
-
SET search_path = public, pg_catalog;
|
32
|
-
|
33
32
|
SET default_tablespace = '';
|
34
33
|
|
35
34
|
SET default_with_oids = false;
|
@@ -38,7 +37,7 @@ SET default_with_oids = false;
|
|
38
37
|
-- Name: actions; Type: TABLE; Schema: public; Owner: -
|
39
38
|
--
|
40
39
|
|
41
|
-
CREATE TABLE actions (
|
40
|
+
CREATE TABLE public.actions (
|
42
41
|
id integer NOT NULL,
|
43
42
|
name character varying NOT NULL,
|
44
43
|
started_at timestamp without time zone,
|
@@ -55,7 +54,7 @@ CREATE TABLE actions (
|
|
55
54
|
-- Name: actions_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
56
55
|
--
|
57
56
|
|
58
|
-
CREATE SEQUENCE actions_id_seq
|
57
|
+
CREATE SEQUENCE public.actions_id_seq
|
59
58
|
START WITH 1
|
60
59
|
INCREMENT BY 1
|
61
60
|
NO MINVALUE
|
@@ -67,14 +66,46 @@ CREATE SEQUENCE actions_id_seq
|
|
67
66
|
-- Name: actions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
68
67
|
--
|
69
68
|
|
70
|
-
ALTER SEQUENCE actions_id_seq OWNED BY actions.id;
|
69
|
+
ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id;
|
70
|
+
|
71
|
+
|
72
|
+
--
|
73
|
+
-- Name: api_tokens; Type: TABLE; Schema: public; Owner: -
|
74
|
+
--
|
75
|
+
|
76
|
+
CREATE TABLE public.api_tokens (
|
77
|
+
id integer NOT NULL,
|
78
|
+
name character varying NOT NULL,
|
79
|
+
user_id integer NOT NULL,
|
80
|
+
value character varying NOT NULL
|
81
|
+
);
|
82
|
+
|
83
|
+
|
84
|
+
--
|
85
|
+
-- Name: api_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
86
|
+
--
|
87
|
+
|
88
|
+
CREATE SEQUENCE public.api_tokens_id_seq
|
89
|
+
AS integer
|
90
|
+
START WITH 1
|
91
|
+
INCREMENT BY 1
|
92
|
+
NO MINVALUE
|
93
|
+
NO MAXVALUE
|
94
|
+
CACHE 1;
|
95
|
+
|
96
|
+
|
97
|
+
--
|
98
|
+
-- Name: api_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
99
|
+
--
|
100
|
+
|
101
|
+
ALTER SEQUENCE public.api_tokens_id_seq OWNED BY public.api_tokens.id;
|
71
102
|
|
72
103
|
|
73
104
|
--
|
74
105
|
-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -
|
75
106
|
--
|
76
107
|
|
77
|
-
CREATE TABLE ar_internal_metadata (
|
108
|
+
CREATE TABLE public.ar_internal_metadata (
|
78
109
|
key character varying NOT NULL,
|
79
110
|
value character varying,
|
80
111
|
created_at timestamp without time zone NOT NULL,
|
@@ -86,7 +117,7 @@ CREATE TABLE ar_internal_metadata (
|
|
86
117
|
-- Name: authorizations; Type: TABLE; Schema: public; Owner: -
|
87
118
|
--
|
88
119
|
|
89
|
-
CREATE TABLE authorizations (
|
120
|
+
CREATE TABLE public.authorizations (
|
90
121
|
id integer NOT NULL,
|
91
122
|
scope character varying,
|
92
123
|
access_token character varying,
|
@@ -106,7 +137,7 @@ CREATE TABLE authorizations (
|
|
106
137
|
-- Name: authorizations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
107
138
|
--
|
108
139
|
|
109
|
-
CREATE SEQUENCE authorizations_id_seq
|
140
|
+
CREATE SEQUENCE public.authorizations_id_seq
|
110
141
|
START WITH 1
|
111
142
|
INCREMENT BY 1
|
112
143
|
NO MINVALUE
|
@@ -118,14 +149,14 @@ CREATE SEQUENCE authorizations_id_seq
|
|
118
149
|
-- Name: authorizations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
119
150
|
--
|
120
151
|
|
121
|
-
ALTER SEQUENCE authorizations_id_seq OWNED BY authorizations.id;
|
152
|
+
ALTER SEQUENCE public.authorizations_id_seq OWNED BY public.authorizations.id;
|
122
153
|
|
123
154
|
|
124
155
|
--
|
125
156
|
-- Name: errors; Type: TABLE; Schema: public; Owner: -
|
126
157
|
--
|
127
158
|
|
128
|
-
CREATE TABLE errors (
|
159
|
+
CREATE TABLE public.errors (
|
129
160
|
id integer NOT NULL,
|
130
161
|
sha character varying NOT NULL,
|
131
162
|
message text NOT NULL,
|
@@ -140,7 +171,7 @@ CREATE TABLE errors (
|
|
140
171
|
-- Name: errors_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
141
172
|
--
|
142
173
|
|
143
|
-
CREATE SEQUENCE errors_id_seq
|
174
|
+
CREATE SEQUENCE public.errors_id_seq
|
144
175
|
START WITH 1
|
145
176
|
INCREMENT BY 1
|
146
177
|
NO MINVALUE
|
@@ -152,14 +183,14 @@ CREATE SEQUENCE errors_id_seq
|
|
152
183
|
-- Name: errors_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
153
184
|
--
|
154
185
|
|
155
|
-
ALTER SEQUENCE errors_id_seq OWNED BY errors.id;
|
186
|
+
ALTER SEQUENCE public.errors_id_seq OWNED BY public.errors.id;
|
156
187
|
|
157
188
|
|
158
189
|
--
|
159
190
|
-- Name: follows; Type: TABLE; Schema: public; Owner: -
|
160
191
|
--
|
161
192
|
|
162
|
-
CREATE TABLE follows (
|
193
|
+
CREATE TABLE public.follows (
|
163
194
|
id integer NOT NULL,
|
164
195
|
user_id integer,
|
165
196
|
project_id integer
|
@@ -170,7 +201,7 @@ CREATE TABLE follows (
|
|
170
201
|
-- Name: follows_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
171
202
|
--
|
172
203
|
|
173
|
-
CREATE SEQUENCE follows_id_seq
|
204
|
+
CREATE SEQUENCE public.follows_id_seq
|
174
205
|
START WITH 1
|
175
206
|
INCREMENT BY 1
|
176
207
|
NO MINVALUE
|
@@ -182,14 +213,14 @@ CREATE SEQUENCE follows_id_seq
|
|
182
213
|
-- Name: follows_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
183
214
|
--
|
184
215
|
|
185
|
-
ALTER SEQUENCE follows_id_seq OWNED BY follows.id;
|
216
|
+
ALTER SEQUENCE public.follows_id_seq OWNED BY public.follows.id;
|
186
217
|
|
187
218
|
|
188
219
|
--
|
189
220
|
-- Name: measurements; Type: TABLE; Schema: public; Owner: -
|
190
221
|
--
|
191
222
|
|
192
|
-
CREATE TABLE measurements (
|
223
|
+
CREATE TABLE public.measurements (
|
193
224
|
id integer NOT NULL,
|
194
225
|
subject_type character varying,
|
195
226
|
subject_id integer,
|
@@ -206,7 +237,7 @@ CREATE TABLE measurements (
|
|
206
237
|
-- Name: measurements_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
207
238
|
--
|
208
239
|
|
209
|
-
CREATE SEQUENCE measurements_id_seq
|
240
|
+
CREATE SEQUENCE public.measurements_id_seq
|
210
241
|
START WITH 1
|
211
242
|
INCREMENT BY 1
|
212
243
|
NO MINVALUE
|
@@ -218,14 +249,14 @@ CREATE SEQUENCE measurements_id_seq
|
|
218
249
|
-- Name: measurements_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
219
250
|
--
|
220
251
|
|
221
|
-
ALTER SEQUENCE measurements_id_seq OWNED BY measurements.id;
|
252
|
+
ALTER SEQUENCE public.measurements_id_seq OWNED BY public.measurements.id;
|
222
253
|
|
223
254
|
|
224
255
|
--
|
225
256
|
-- Name: persistent_triggers; Type: TABLE; Schema: public; Owner: -
|
226
257
|
--
|
227
258
|
|
228
|
-
CREATE TABLE persistent_triggers (
|
259
|
+
CREATE TABLE public.persistent_triggers (
|
229
260
|
id integer NOT NULL,
|
230
261
|
type character varying NOT NULL,
|
231
262
|
value text NOT NULL,
|
@@ -239,7 +270,7 @@ CREATE TABLE persistent_triggers (
|
|
239
270
|
-- Name: persistent_triggers_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
240
271
|
--
|
241
272
|
|
242
|
-
CREATE SEQUENCE persistent_triggers_id_seq
|
273
|
+
CREATE SEQUENCE public.persistent_triggers_id_seq
|
243
274
|
START WITH 1
|
244
275
|
INCREMENT BY 1
|
245
276
|
NO MINVALUE
|
@@ -251,14 +282,14 @@ CREATE SEQUENCE persistent_triggers_id_seq
|
|
251
282
|
-- Name: persistent_triggers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
252
283
|
--
|
253
284
|
|
254
|
-
ALTER SEQUENCE persistent_triggers_id_seq OWNED BY persistent_triggers.id;
|
285
|
+
ALTER SEQUENCE public.persistent_triggers_id_seq OWNED BY public.persistent_triggers.id;
|
255
286
|
|
256
287
|
|
257
288
|
--
|
258
289
|
-- Name: projects; Type: TABLE; Schema: public; Owner: -
|
259
290
|
--
|
260
291
|
|
261
|
-
CREATE TABLE projects (
|
292
|
+
CREATE TABLE public.projects (
|
262
293
|
id integer NOT NULL,
|
263
294
|
name character varying NOT NULL,
|
264
295
|
slug character varying NOT NULL,
|
@@ -284,7 +315,7 @@ CREATE TABLE projects (
|
|
284
315
|
-- Name: projects_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
285
316
|
--
|
286
317
|
|
287
|
-
CREATE SEQUENCE projects_id_seq
|
318
|
+
CREATE SEQUENCE public.projects_id_seq
|
288
319
|
START WITH 1
|
289
320
|
INCREMENT BY 1
|
290
321
|
NO MINVALUE
|
@@ -296,14 +327,14 @@ CREATE SEQUENCE projects_id_seq
|
|
296
327
|
-- Name: projects_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
297
328
|
--
|
298
329
|
|
299
|
-
ALTER SEQUENCE projects_id_seq OWNED BY projects.id;
|
330
|
+
ALTER SEQUENCE public.projects_id_seq OWNED BY public.projects.id;
|
300
331
|
|
301
332
|
|
302
333
|
--
|
303
334
|
-- Name: roles; Type: TABLE; Schema: public; Owner: -
|
304
335
|
--
|
305
336
|
|
306
|
-
CREATE TABLE roles (
|
337
|
+
CREATE TABLE public.roles (
|
307
338
|
id integer NOT NULL,
|
308
339
|
user_id integer,
|
309
340
|
project_id integer,
|
@@ -317,7 +348,7 @@ CREATE TABLE roles (
|
|
317
348
|
-- Name: roles_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
318
349
|
--
|
319
350
|
|
320
|
-
CREATE SEQUENCE roles_id_seq
|
351
|
+
CREATE SEQUENCE public.roles_id_seq
|
321
352
|
START WITH 1
|
322
353
|
INCREMENT BY 1
|
323
354
|
NO MINVALUE
|
@@ -329,14 +360,14 @@ CREATE SEQUENCE roles_id_seq
|
|
329
360
|
-- Name: roles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
330
361
|
--
|
331
362
|
|
332
|
-
ALTER SEQUENCE roles_id_seq OWNED BY roles.id;
|
363
|
+
ALTER SEQUENCE public.roles_id_seq OWNED BY public.roles.id;
|
333
364
|
|
334
365
|
|
335
366
|
--
|
336
367
|
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -
|
337
368
|
--
|
338
369
|
|
339
|
-
CREATE TABLE schema_migrations (
|
370
|
+
CREATE TABLE public.schema_migrations (
|
340
371
|
version character varying NOT NULL
|
341
372
|
);
|
342
373
|
|
@@ -345,7 +376,7 @@ CREATE TABLE schema_migrations (
|
|
345
376
|
-- Name: teams; Type: TABLE; Schema: public; Owner: -
|
346
377
|
--
|
347
378
|
|
348
|
-
CREATE TABLE teams (
|
379
|
+
CREATE TABLE public.teams (
|
349
380
|
id integer NOT NULL,
|
350
381
|
name character varying,
|
351
382
|
props jsonb DEFAULT '{}'::jsonb
|
@@ -356,7 +387,7 @@ CREATE TABLE teams (
|
|
356
387
|
-- Name: teams_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
357
388
|
--
|
358
389
|
|
359
|
-
CREATE SEQUENCE teams_id_seq
|
390
|
+
CREATE SEQUENCE public.teams_id_seq
|
360
391
|
START WITH 1
|
361
392
|
INCREMENT BY 1
|
362
393
|
NO MINVALUE
|
@@ -368,14 +399,14 @@ CREATE SEQUENCE teams_id_seq
|
|
368
399
|
-- Name: teams_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
369
400
|
--
|
370
401
|
|
371
|
-
ALTER SEQUENCE teams_id_seq OWNED BY teams.id;
|
402
|
+
ALTER SEQUENCE public.teams_id_seq OWNED BY public.teams.id;
|
372
403
|
|
373
404
|
|
374
405
|
--
|
375
406
|
-- Name: teams_users; Type: TABLE; Schema: public; Owner: -
|
376
407
|
--
|
377
408
|
|
378
|
-
CREATE TABLE teams_users (
|
409
|
+
CREATE TABLE public.teams_users (
|
379
410
|
id integer NOT NULL,
|
380
411
|
team_id integer,
|
381
412
|
user_id integer,
|
@@ -389,7 +420,7 @@ CREATE TABLE teams_users (
|
|
389
420
|
-- Name: teams_users_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
390
421
|
--
|
391
422
|
|
392
|
-
CREATE SEQUENCE teams_users_id_seq
|
423
|
+
CREATE SEQUENCE public.teams_users_id_seq
|
393
424
|
START WITH 1
|
394
425
|
INCREMENT BY 1
|
395
426
|
NO MINVALUE
|
@@ -401,14 +432,14 @@ CREATE SEQUENCE teams_users_id_seq
|
|
401
432
|
-- Name: teams_users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
402
433
|
--
|
403
434
|
|
404
|
-
ALTER SEQUENCE teams_users_id_seq OWNED BY teams_users.id;
|
435
|
+
ALTER SEQUENCE public.teams_users_id_seq OWNED BY public.teams_users.id;
|
405
436
|
|
406
437
|
|
407
438
|
--
|
408
439
|
-- Name: users; Type: TABLE; Schema: public; Owner: -
|
409
440
|
--
|
410
441
|
|
411
|
-
CREATE TABLE users (
|
442
|
+
CREATE TABLE public.users (
|
412
443
|
id integer NOT NULL,
|
413
444
|
email character varying DEFAULT ''::character varying NOT NULL,
|
414
445
|
encrypted_password character varying DEFAULT ''::character varying,
|
@@ -446,7 +477,7 @@ CREATE TABLE users (
|
|
446
477
|
-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
447
478
|
--
|
448
479
|
|
449
|
-
CREATE SEQUENCE users_id_seq
|
480
|
+
CREATE SEQUENCE public.users_id_seq
|
450
481
|
START WITH 1
|
451
482
|
INCREMENT BY 1
|
452
483
|
NO MINVALUE
|
@@ -458,14 +489,14 @@ CREATE SEQUENCE users_id_seq
|
|
458
489
|
-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
459
490
|
--
|
460
491
|
|
461
|
-
ALTER SEQUENCE users_id_seq OWNED BY users.id;
|
492
|
+
ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;
|
462
493
|
|
463
494
|
|
464
495
|
--
|
465
496
|
-- Name: versions; Type: TABLE; Schema: public; Owner: -
|
466
497
|
--
|
467
498
|
|
468
|
-
CREATE TABLE versions (
|
499
|
+
CREATE TABLE public.versions (
|
469
500
|
id integer NOT NULL,
|
470
501
|
versioned_type character varying,
|
471
502
|
versioned_id integer,
|
@@ -485,7 +516,7 @@ CREATE TABLE versions (
|
|
485
516
|
-- Name: versions_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
486
517
|
--
|
487
518
|
|
488
|
-
CREATE SEQUENCE versions_id_seq
|
519
|
+
CREATE SEQUENCE public.versions_id_seq
|
489
520
|
START WITH 1
|
490
521
|
INCREMENT BY 1
|
491
522
|
NO MINVALUE
|
@@ -497,106 +528,121 @@ CREATE SEQUENCE versions_id_seq
|
|
497
528
|
-- Name: versions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
498
529
|
--
|
499
530
|
|
500
|
-
ALTER SEQUENCE versions_id_seq OWNED BY versions.id;
|
531
|
+
ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id;
|
501
532
|
|
502
533
|
|
503
534
|
--
|
504
535
|
-- Name: actions id; Type: DEFAULT; Schema: public; Owner: -
|
505
536
|
--
|
506
537
|
|
507
|
-
ALTER TABLE ONLY actions ALTER COLUMN id SET DEFAULT nextval('actions_id_seq'::regclass);
|
538
|
+
ALTER TABLE ONLY public.actions ALTER COLUMN id SET DEFAULT nextval('public.actions_id_seq'::regclass);
|
539
|
+
|
540
|
+
|
541
|
+
--
|
542
|
+
-- Name: api_tokens id; Type: DEFAULT; Schema: public; Owner: -
|
543
|
+
--
|
544
|
+
|
545
|
+
ALTER TABLE ONLY public.api_tokens ALTER COLUMN id SET DEFAULT nextval('public.api_tokens_id_seq'::regclass);
|
508
546
|
|
509
547
|
|
510
548
|
--
|
511
549
|
-- Name: authorizations id; Type: DEFAULT; Schema: public; Owner: -
|
512
550
|
--
|
513
551
|
|
514
|
-
ALTER TABLE ONLY authorizations ALTER COLUMN id SET DEFAULT nextval('authorizations_id_seq'::regclass);
|
552
|
+
ALTER TABLE ONLY public.authorizations ALTER COLUMN id SET DEFAULT nextval('public.authorizations_id_seq'::regclass);
|
515
553
|
|
516
554
|
|
517
555
|
--
|
518
556
|
-- Name: errors id; Type: DEFAULT; Schema: public; Owner: -
|
519
557
|
--
|
520
558
|
|
521
|
-
ALTER TABLE ONLY errors ALTER COLUMN id SET DEFAULT nextval('errors_id_seq'::regclass);
|
559
|
+
ALTER TABLE ONLY public.errors ALTER COLUMN id SET DEFAULT nextval('public.errors_id_seq'::regclass);
|
522
560
|
|
523
561
|
|
524
562
|
--
|
525
563
|
-- Name: follows id; Type: DEFAULT; Schema: public; Owner: -
|
526
564
|
--
|
527
565
|
|
528
|
-
ALTER TABLE ONLY follows ALTER COLUMN id SET DEFAULT nextval('follows_id_seq'::regclass);
|
566
|
+
ALTER TABLE ONLY public.follows ALTER COLUMN id SET DEFAULT nextval('public.follows_id_seq'::regclass);
|
529
567
|
|
530
568
|
|
531
569
|
--
|
532
570
|
-- Name: measurements id; Type: DEFAULT; Schema: public; Owner: -
|
533
571
|
--
|
534
572
|
|
535
|
-
ALTER TABLE ONLY measurements ALTER COLUMN id SET DEFAULT nextval('measurements_id_seq'::regclass);
|
573
|
+
ALTER TABLE ONLY public.measurements ALTER COLUMN id SET DEFAULT nextval('public.measurements_id_seq'::regclass);
|
536
574
|
|
537
575
|
|
538
576
|
--
|
539
577
|
-- Name: persistent_triggers id; Type: DEFAULT; Schema: public; Owner: -
|
540
578
|
--
|
541
579
|
|
542
|
-
ALTER TABLE ONLY persistent_triggers ALTER COLUMN id SET DEFAULT nextval('persistent_triggers_id_seq'::regclass);
|
580
|
+
ALTER TABLE ONLY public.persistent_triggers ALTER COLUMN id SET DEFAULT nextval('public.persistent_triggers_id_seq'::regclass);
|
543
581
|
|
544
582
|
|
545
583
|
--
|
546
584
|
-- Name: projects id; Type: DEFAULT; Schema: public; Owner: -
|
547
585
|
--
|
548
586
|
|
549
|
-
ALTER TABLE ONLY projects ALTER COLUMN id SET DEFAULT nextval('projects_id_seq'::regclass);
|
587
|
+
ALTER TABLE ONLY public.projects ALTER COLUMN id SET DEFAULT nextval('public.projects_id_seq'::regclass);
|
550
588
|
|
551
589
|
|
552
590
|
--
|
553
591
|
-- Name: roles id; Type: DEFAULT; Schema: public; Owner: -
|
554
592
|
--
|
555
593
|
|
556
|
-
ALTER TABLE ONLY roles ALTER COLUMN id SET DEFAULT nextval('roles_id_seq'::regclass);
|
594
|
+
ALTER TABLE ONLY public.roles ALTER COLUMN id SET DEFAULT nextval('public.roles_id_seq'::regclass);
|
557
595
|
|
558
596
|
|
559
597
|
--
|
560
598
|
-- Name: teams id; Type: DEFAULT; Schema: public; Owner: -
|
561
599
|
--
|
562
600
|
|
563
|
-
ALTER TABLE ONLY teams ALTER COLUMN id SET DEFAULT nextval('teams_id_seq'::regclass);
|
601
|
+
ALTER TABLE ONLY public.teams ALTER COLUMN id SET DEFAULT nextval('public.teams_id_seq'::regclass);
|
564
602
|
|
565
603
|
|
566
604
|
--
|
567
605
|
-- Name: teams_users id; Type: DEFAULT; Schema: public; Owner: -
|
568
606
|
--
|
569
607
|
|
570
|
-
ALTER TABLE ONLY teams_users ALTER COLUMN id SET DEFAULT nextval('teams_users_id_seq'::regclass);
|
608
|
+
ALTER TABLE ONLY public.teams_users ALTER COLUMN id SET DEFAULT nextval('public.teams_users_id_seq'::regclass);
|
571
609
|
|
572
610
|
|
573
611
|
--
|
574
612
|
-- Name: users id; Type: DEFAULT; Schema: public; Owner: -
|
575
613
|
--
|
576
614
|
|
577
|
-
ALTER TABLE ONLY users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass);
|
615
|
+
ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass);
|
578
616
|
|
579
617
|
|
580
618
|
--
|
581
619
|
-- Name: versions id; Type: DEFAULT; Schema: public; Owner: -
|
582
620
|
--
|
583
621
|
|
584
|
-
ALTER TABLE ONLY versions ALTER COLUMN id SET DEFAULT nextval('versions_id_seq'::regclass);
|
622
|
+
ALTER TABLE ONLY public.versions ALTER COLUMN id SET DEFAULT nextval('public.versions_id_seq'::regclass);
|
585
623
|
|
586
624
|
|
587
625
|
--
|
588
626
|
-- Name: actions actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
589
627
|
--
|
590
628
|
|
591
|
-
ALTER TABLE ONLY actions
|
629
|
+
ALTER TABLE ONLY public.actions
|
592
630
|
ADD CONSTRAINT actions_pkey PRIMARY KEY (id);
|
593
631
|
|
594
632
|
|
633
|
+
--
|
634
|
+
-- Name: api_tokens api_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
635
|
+
--
|
636
|
+
|
637
|
+
ALTER TABLE ONLY public.api_tokens
|
638
|
+
ADD CONSTRAINT api_tokens_pkey PRIMARY KEY (id);
|
639
|
+
|
640
|
+
|
595
641
|
--
|
596
642
|
-- Name: ar_internal_metadata ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
597
643
|
--
|
598
644
|
|
599
|
-
ALTER TABLE ONLY ar_internal_metadata
|
645
|
+
ALTER TABLE ONLY public.ar_internal_metadata
|
600
646
|
ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
|
601
647
|
|
602
648
|
|
@@ -604,7 +650,7 @@ ALTER TABLE ONLY ar_internal_metadata
|
|
604
650
|
-- Name: authorizations authorizations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
605
651
|
--
|
606
652
|
|
607
|
-
ALTER TABLE ONLY authorizations
|
653
|
+
ALTER TABLE ONLY public.authorizations
|
608
654
|
ADD CONSTRAINT authorizations_pkey PRIMARY KEY (id);
|
609
655
|
|
610
656
|
|
@@ -612,7 +658,7 @@ ALTER TABLE ONLY authorizations
|
|
612
658
|
-- Name: errors errors_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
613
659
|
--
|
614
660
|
|
615
|
-
ALTER TABLE ONLY errors
|
661
|
+
ALTER TABLE ONLY public.errors
|
616
662
|
ADD CONSTRAINT errors_pkey PRIMARY KEY (id);
|
617
663
|
|
618
664
|
|
@@ -620,7 +666,7 @@ ALTER TABLE ONLY errors
|
|
620
666
|
-- Name: follows follows_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
621
667
|
--
|
622
668
|
|
623
|
-
ALTER TABLE ONLY follows
|
669
|
+
ALTER TABLE ONLY public.follows
|
624
670
|
ADD CONSTRAINT follows_pkey PRIMARY KEY (id);
|
625
671
|
|
626
672
|
|
@@ -628,7 +674,7 @@ ALTER TABLE ONLY follows
|
|
628
674
|
-- Name: measurements measurements_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
629
675
|
--
|
630
676
|
|
631
|
-
ALTER TABLE ONLY measurements
|
677
|
+
ALTER TABLE ONLY public.measurements
|
632
678
|
ADD CONSTRAINT measurements_pkey PRIMARY KEY (id);
|
633
679
|
|
634
680
|
|
@@ -636,7 +682,7 @@ ALTER TABLE ONLY measurements
|
|
636
682
|
-- Name: persistent_triggers persistent_triggers_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
637
683
|
--
|
638
684
|
|
639
|
-
ALTER TABLE ONLY persistent_triggers
|
685
|
+
ALTER TABLE ONLY public.persistent_triggers
|
640
686
|
ADD CONSTRAINT persistent_triggers_pkey PRIMARY KEY (id);
|
641
687
|
|
642
688
|
|
@@ -644,7 +690,7 @@ ALTER TABLE ONLY persistent_triggers
|
|
644
690
|
-- Name: projects projects_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
645
691
|
--
|
646
692
|
|
647
|
-
ALTER TABLE ONLY projects
|
693
|
+
ALTER TABLE ONLY public.projects
|
648
694
|
ADD CONSTRAINT projects_pkey PRIMARY KEY (id);
|
649
695
|
|
650
696
|
|
@@ -652,7 +698,7 @@ ALTER TABLE ONLY projects
|
|
652
698
|
-- Name: roles roles_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
653
699
|
--
|
654
700
|
|
655
|
-
ALTER TABLE ONLY roles
|
701
|
+
ALTER TABLE ONLY public.roles
|
656
702
|
ADD CONSTRAINT roles_pkey PRIMARY KEY (id);
|
657
703
|
|
658
704
|
|
@@ -660,7 +706,7 @@ ALTER TABLE ONLY roles
|
|
660
706
|
-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
661
707
|
--
|
662
708
|
|
663
|
-
ALTER TABLE ONLY schema_migrations
|
709
|
+
ALTER TABLE ONLY public.schema_migrations
|
664
710
|
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
665
711
|
|
666
712
|
|
@@ -668,7 +714,7 @@ ALTER TABLE ONLY schema_migrations
|
|
668
714
|
-- Name: teams teams_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
669
715
|
--
|
670
716
|
|
671
|
-
ALTER TABLE ONLY teams
|
717
|
+
ALTER TABLE ONLY public.teams
|
672
718
|
ADD CONSTRAINT teams_pkey PRIMARY KEY (id);
|
673
719
|
|
674
720
|
|
@@ -676,7 +722,7 @@ ALTER TABLE ONLY teams
|
|
676
722
|
-- Name: teams_users teams_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
677
723
|
--
|
678
724
|
|
679
|
-
ALTER TABLE ONLY teams_users
|
725
|
+
ALTER TABLE ONLY public.teams_users
|
680
726
|
ADD CONSTRAINT teams_users_pkey PRIMARY KEY (id);
|
681
727
|
|
682
728
|
|
@@ -684,7 +730,7 @@ ALTER TABLE ONLY teams_users
|
|
684
730
|
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
685
731
|
--
|
686
732
|
|
687
|
-
ALTER TABLE ONLY users
|
733
|
+
ALTER TABLE ONLY public.users
|
688
734
|
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
|
689
735
|
|
690
736
|
|
@@ -692,7 +738,7 @@ ALTER TABLE ONLY users
|
|
692
738
|
-- Name: versions versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
693
739
|
--
|
694
740
|
|
695
|
-
ALTER TABLE ONLY versions
|
741
|
+
ALTER TABLE ONLY public.versions
|
696
742
|
ADD CONSTRAINT versions_pkey PRIMARY KEY (id);
|
697
743
|
|
698
744
|
|
@@ -700,199 +746,221 @@ ALTER TABLE ONLY versions
|
|
700
746
|
-- Name: index_actions_on_name; Type: INDEX; Schema: public; Owner: -
|
701
747
|
--
|
702
748
|
|
703
|
-
CREATE INDEX index_actions_on_name ON actions USING btree (name);
|
749
|
+
CREATE INDEX index_actions_on_name ON public.actions USING btree (name);
|
750
|
+
|
751
|
+
|
752
|
+
--
|
753
|
+
-- Name: index_api_tokens_on_user_id; Type: INDEX; Schema: public; Owner: -
|
754
|
+
--
|
755
|
+
|
756
|
+
CREATE INDEX index_api_tokens_on_user_id ON public.api_tokens USING btree (user_id);
|
757
|
+
|
758
|
+
|
759
|
+
--
|
760
|
+
-- Name: index_api_tokens_on_value; Type: INDEX; Schema: public; Owner: -
|
761
|
+
--
|
762
|
+
|
763
|
+
CREATE INDEX index_api_tokens_on_value ON public.api_tokens USING btree (value);
|
704
764
|
|
705
765
|
|
706
766
|
--
|
707
767
|
-- Name: index_authorizations_on_user_id; Type: INDEX; Schema: public; Owner: -
|
708
768
|
--
|
709
769
|
|
710
|
-
CREATE INDEX index_authorizations_on_user_id ON authorizations USING btree (user_id);
|
770
|
+
CREATE INDEX index_authorizations_on_user_id ON public.authorizations USING btree (user_id);
|
711
771
|
|
712
772
|
|
713
773
|
--
|
714
774
|
-- Name: index_errors_on_sha; Type: INDEX; Schema: public; Owner: -
|
715
775
|
--
|
716
776
|
|
717
|
-
CREATE UNIQUE INDEX index_errors_on_sha ON errors USING btree (sha);
|
777
|
+
CREATE UNIQUE INDEX index_errors_on_sha ON public.errors USING btree (sha);
|
718
778
|
|
719
779
|
|
720
780
|
--
|
721
781
|
-- Name: index_follows_on_project_id; Type: INDEX; Schema: public; Owner: -
|
722
782
|
--
|
723
783
|
|
724
|
-
CREATE INDEX index_follows_on_project_id ON follows USING btree (project_id);
|
784
|
+
CREATE INDEX index_follows_on_project_id ON public.follows USING btree (project_id);
|
725
785
|
|
726
786
|
|
727
787
|
--
|
728
788
|
-- Name: index_follows_on_user_id; Type: INDEX; Schema: public; Owner: -
|
729
789
|
--
|
730
790
|
|
731
|
-
CREATE INDEX index_follows_on_user_id ON follows USING btree (user_id);
|
791
|
+
CREATE INDEX index_follows_on_user_id ON public.follows USING btree (user_id);
|
732
792
|
|
733
793
|
|
734
794
|
--
|
735
795
|
-- Name: index_measurements_on_name; Type: INDEX; Schema: public; Owner: -
|
736
796
|
--
|
737
797
|
|
738
|
-
CREATE INDEX index_measurements_on_name ON measurements USING btree (name);
|
798
|
+
CREATE INDEX index_measurements_on_name ON public.measurements USING btree (name);
|
739
799
|
|
740
800
|
|
741
801
|
--
|
742
802
|
-- Name: index_measurements_on_subject_type_and_subject_id; Type: INDEX; Schema: public; Owner: -
|
743
803
|
--
|
744
804
|
|
745
|
-
CREATE INDEX index_measurements_on_subject_type_and_subject_id ON measurements USING btree (subject_type, subject_id);
|
805
|
+
CREATE INDEX index_measurements_on_subject_type_and_subject_id ON public.measurements USING btree (subject_type, subject_id);
|
746
806
|
|
747
807
|
|
748
808
|
--
|
749
809
|
-- Name: index_measurements_on_taken_at; Type: INDEX; Schema: public; Owner: -
|
750
810
|
--
|
751
811
|
|
752
|
-
CREATE INDEX index_measurements_on_taken_at ON measurements USING btree (taken_at);
|
812
|
+
CREATE INDEX index_measurements_on_taken_at ON public.measurements USING btree (taken_at);
|
753
813
|
|
754
814
|
|
755
815
|
--
|
756
816
|
-- Name: index_measurements_on_taken_on; Type: INDEX; Schema: public; Owner: -
|
757
817
|
--
|
758
818
|
|
759
|
-
CREATE INDEX index_measurements_on_taken_on ON measurements USING btree (taken_on);
|
819
|
+
CREATE INDEX index_measurements_on_taken_on ON public.measurements USING btree (taken_on);
|
760
820
|
|
761
821
|
|
762
822
|
--
|
763
823
|
-- Name: index_projects_on_slug; Type: INDEX; Schema: public; Owner: -
|
764
824
|
--
|
765
825
|
|
766
|
-
CREATE UNIQUE INDEX index_projects_on_slug ON projects USING btree (slug);
|
826
|
+
CREATE UNIQUE INDEX index_projects_on_slug ON public.projects USING btree (slug);
|
767
827
|
|
768
828
|
|
769
829
|
--
|
770
830
|
-- Name: index_roles_on_user_id_and_project_id; Type: INDEX; Schema: public; Owner: -
|
771
831
|
--
|
772
832
|
|
773
|
-
CREATE INDEX index_roles_on_user_id_and_project_id ON roles USING btree (user_id, project_id);
|
833
|
+
CREATE INDEX index_roles_on_user_id_and_project_id ON public.roles USING btree (user_id, project_id);
|
774
834
|
|
775
835
|
|
776
836
|
--
|
777
837
|
-- Name: index_roles_on_user_id_and_project_id_and_name; Type: INDEX; Schema: public; Owner: -
|
778
838
|
--
|
779
839
|
|
780
|
-
CREATE INDEX index_roles_on_user_id_and_project_id_and_name ON roles USING btree (user_id, project_id, name);
|
840
|
+
CREATE INDEX index_roles_on_user_id_and_project_id_and_name ON public.roles USING btree (user_id, project_id, name);
|
781
841
|
|
782
842
|
|
783
843
|
--
|
784
844
|
-- Name: index_teams_users_on_team_id_and_user_id; Type: INDEX; Schema: public; Owner: -
|
785
845
|
--
|
786
846
|
|
787
|
-
CREATE UNIQUE INDEX index_teams_users_on_team_id_and_user_id ON teams_users USING btree (team_id, user_id);
|
847
|
+
CREATE UNIQUE INDEX index_teams_users_on_team_id_and_user_id ON public.teams_users USING btree (team_id, user_id);
|
788
848
|
|
789
849
|
|
790
850
|
--
|
791
851
|
-- Name: index_users_on_authentication_token; Type: INDEX; Schema: public; Owner: -
|
792
852
|
--
|
793
853
|
|
794
|
-
CREATE INDEX index_users_on_authentication_token ON users USING btree (authentication_token);
|
854
|
+
CREATE INDEX index_users_on_authentication_token ON public.users USING btree (authentication_token);
|
795
855
|
|
796
856
|
|
797
857
|
--
|
798
858
|
-- Name: index_users_on_email; Type: INDEX; Schema: public; Owner: -
|
799
859
|
--
|
800
860
|
|
801
|
-
CREATE UNIQUE INDEX index_users_on_email ON users USING btree (email);
|
861
|
+
CREATE UNIQUE INDEX index_users_on_email ON public.users USING btree (email);
|
802
862
|
|
803
863
|
|
804
864
|
--
|
805
865
|
-- Name: index_users_on_email_addresses; Type: INDEX; Schema: public; Owner: -
|
806
866
|
--
|
807
867
|
|
808
|
-
CREATE INDEX index_users_on_email_addresses ON users USING btree (email_addresses);
|
868
|
+
CREATE INDEX index_users_on_email_addresses ON public.users USING btree (email_addresses);
|
809
869
|
|
810
870
|
|
811
871
|
--
|
812
872
|
-- Name: index_users_on_invitation_token; Type: INDEX; Schema: public; Owner: -
|
813
873
|
--
|
814
874
|
|
815
|
-
CREATE INDEX index_users_on_invitation_token ON users USING btree (invitation_token);
|
875
|
+
CREATE INDEX index_users_on_invitation_token ON public.users USING btree (invitation_token);
|
816
876
|
|
817
877
|
|
818
878
|
--
|
819
879
|
-- Name: index_users_on_invited_by_id; Type: INDEX; Schema: public; Owner: -
|
820
880
|
--
|
821
881
|
|
822
|
-
CREATE INDEX index_users_on_invited_by_id ON users USING btree (invited_by_id);
|
882
|
+
CREATE INDEX index_users_on_invited_by_id ON public.users USING btree (invited_by_id);
|
823
883
|
|
824
884
|
|
825
885
|
--
|
826
886
|
-- Name: index_users_on_reset_password_token; Type: INDEX; Schema: public; Owner: -
|
827
887
|
--
|
828
888
|
|
829
|
-
CREATE UNIQUE INDEX index_users_on_reset_password_token ON users USING btree (reset_password_token);
|
889
|
+
CREATE UNIQUE INDEX index_users_on_reset_password_token ON public.users USING btree (reset_password_token);
|
830
890
|
|
831
891
|
|
832
892
|
--
|
833
893
|
-- Name: index_versions_on_created_at; Type: INDEX; Schema: public; Owner: -
|
834
894
|
--
|
835
895
|
|
836
|
-
CREATE INDEX index_versions_on_created_at ON versions USING btree (created_at);
|
896
|
+
CREATE INDEX index_versions_on_created_at ON public.versions USING btree (created_at);
|
837
897
|
|
838
898
|
|
839
899
|
--
|
840
900
|
-- Name: index_versions_on_number; Type: INDEX; Schema: public; Owner: -
|
841
901
|
--
|
842
902
|
|
843
|
-
CREATE INDEX index_versions_on_number ON versions USING btree (number);
|
903
|
+
CREATE INDEX index_versions_on_number ON public.versions USING btree (number);
|
844
904
|
|
845
905
|
|
846
906
|
--
|
847
907
|
-- Name: index_versions_on_tag; Type: INDEX; Schema: public; Owner: -
|
848
908
|
--
|
849
909
|
|
850
|
-
CREATE INDEX index_versions_on_tag ON versions USING btree (tag);
|
910
|
+
CREATE INDEX index_versions_on_tag ON public.versions USING btree (tag);
|
851
911
|
|
852
912
|
|
853
913
|
--
|
854
914
|
-- Name: index_versions_on_user_id_and_user_type; Type: INDEX; Schema: public; Owner: -
|
855
915
|
--
|
856
916
|
|
857
|
-
CREATE INDEX index_versions_on_user_id_and_user_type ON versions USING btree (user_id, user_type);
|
917
|
+
CREATE INDEX index_versions_on_user_id_and_user_type ON public.versions USING btree (user_id, user_type);
|
858
918
|
|
859
919
|
|
860
920
|
--
|
861
921
|
-- Name: index_versions_on_user_name; Type: INDEX; Schema: public; Owner: -
|
862
922
|
--
|
863
923
|
|
864
|
-
CREATE INDEX index_versions_on_user_name ON versions USING btree (user_name);
|
924
|
+
CREATE INDEX index_versions_on_user_name ON public.versions USING btree (user_name);
|
865
925
|
|
866
926
|
|
867
927
|
--
|
868
928
|
-- Name: index_versions_on_versioned_id_and_versioned_type; Type: INDEX; Schema: public; Owner: -
|
869
929
|
--
|
870
930
|
|
871
|
-
CREATE INDEX index_versions_on_versioned_id_and_versioned_type ON versions USING btree (versioned_id, versioned_type);
|
931
|
+
CREATE INDEX index_versions_on_versioned_id_and_versioned_type ON public.versions USING btree (versioned_id, versioned_type);
|
872
932
|
|
873
933
|
|
874
934
|
--
|
875
935
|
-- Name: follows fk_rails_32479bd030; Type: FK CONSTRAINT; Schema: public; Owner: -
|
876
936
|
--
|
877
937
|
|
878
|
-
ALTER TABLE ONLY follows
|
879
|
-
ADD CONSTRAINT fk_rails_32479bd030 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
|
938
|
+
ALTER TABLE ONLY public.follows
|
939
|
+
ADD CONSTRAINT fk_rails_32479bd030 FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
880
940
|
|
881
941
|
|
882
942
|
--
|
883
943
|
-- Name: authorizations fk_rails_4ecef5b8c5; Type: FK CONSTRAINT; Schema: public; Owner: -
|
884
944
|
--
|
885
945
|
|
886
|
-
ALTER TABLE ONLY authorizations
|
887
|
-
ADD CONSTRAINT fk_rails_4ecef5b8c5 FOREIGN KEY (user_id) REFERENCES users(id);
|
946
|
+
ALTER TABLE ONLY public.authorizations
|
947
|
+
ADD CONSTRAINT fk_rails_4ecef5b8c5 FOREIGN KEY (user_id) REFERENCES public.users(id);
|
888
948
|
|
889
949
|
|
890
950
|
--
|
891
951
|
-- Name: follows fk_rails_572bf69092; Type: FK CONSTRAINT; Schema: public; Owner: -
|
892
952
|
--
|
893
953
|
|
894
|
-
ALTER TABLE ONLY follows
|
895
|
-
ADD CONSTRAINT fk_rails_572bf69092 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
|
954
|
+
ALTER TABLE ONLY public.follows
|
955
|
+
ADD CONSTRAINT fk_rails_572bf69092 FOREIGN KEY (project_id) REFERENCES public.projects(id) ON DELETE CASCADE;
|
956
|
+
|
957
|
+
|
958
|
+
--
|
959
|
+
-- Name: api_tokens fk_rails_f16b5e0447; Type: FK CONSTRAINT; Schema: public; Owner: -
|
960
|
+
--
|
961
|
+
|
962
|
+
ALTER TABLE ONLY public.api_tokens
|
963
|
+
ADD CONSTRAINT fk_rails_f16b5e0447 FOREIGN KEY (user_id) REFERENCES public.users(id);
|
896
964
|
|
897
965
|
|
898
966
|
--
|
@@ -1006,6 +1074,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|
1006
1074
|
('20170307032041'),
|
1007
1075
|
('20170307035755'),
|
1008
1076
|
('20170310024505'),
|
1009
|
-
('20170329030329')
|
1077
|
+
('20170329030329'),
|
1078
|
+
('20181102202848');
|
1010
1079
|
|
1011
1080
|
|
@@ -27,6 +27,10 @@ module Houston
|
|
27
27
|
Trigger.new(self, method_name, value, action, params, persistent_trigger_id)
|
28
28
|
end
|
29
29
|
|
30
|
+
def create(*args)
|
31
|
+
push build(*args)
|
32
|
+
end
|
33
|
+
|
30
34
|
def push(trigger)
|
31
35
|
raise DuplicateTriggerError, "That exact trigger has already been defined" if member?(trigger)
|
32
36
|
super trigger
|
data/lib/houston/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: houston-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Lail
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -569,6 +569,7 @@ files:
|
|
569
569
|
- app/controllers/actions_controller.rb
|
570
570
|
- app/controllers/api/v1/measurements_controller.rb
|
571
571
|
- app/controllers/api/v1/projects_controller.rb
|
572
|
+
- app/controllers/api_tokens_controller.rb
|
572
573
|
- app/controllers/application_controller.rb
|
573
574
|
- app/controllers/authorizations_controller.rb
|
574
575
|
- app/controllers/concerns/.keep
|
@@ -604,6 +605,7 @@ files:
|
|
604
605
|
- app/models/.keep
|
605
606
|
- app/models/ability.rb
|
606
607
|
- app/models/action.rb
|
608
|
+
- app/models/api_token.rb
|
607
609
|
- app/models/authorization.rb
|
608
610
|
- app/models/concerns/.keep
|
609
611
|
- app/models/error.rb
|
@@ -622,6 +624,10 @@ files:
|
|
622
624
|
- app/views/actions/running.html.erb
|
623
625
|
- app/views/actions/show.html.erb
|
624
626
|
- app/views/actions/unqueued.html.erb
|
627
|
+
- app/views/api_tokens/_form.html.erb
|
628
|
+
- app/views/api_tokens/edit.html.erb
|
629
|
+
- app/views/api_tokens/index.html.erb
|
630
|
+
- app/views/api_tokens/new.html.erb
|
625
631
|
- app/views/authorizations/_form.html.erb
|
626
632
|
- app/views/authorizations/edit.html.erb
|
627
633
|
- app/views/authorizations/granted.html.erb
|
@@ -812,6 +818,7 @@ files:
|
|
812
818
|
- db/migrate/20170307035755_allow_actions_started_at_to_be_null.rb
|
813
819
|
- db/migrate/20170310024505_replace_authorizations_provider_name_with_type.rb
|
814
820
|
- db/migrate/20170329030329_drop_consumer_tokens.rb
|
821
|
+
- db/migrate/20181102202848_create_api_tokens.rb
|
815
822
|
- db/seeds.rb
|
816
823
|
- db/structure.sql
|
817
824
|
- houston-core.gemspec
|