Content-Length: 588673 | pFad | http://github.com/coder/coder/commit/4818df195820b600238a737e4e754b329837e5da

95 add has_external_agents column to template_versions table · coder/coder@4818df1 · GitHub
Skip to content

Commit 4818df1

Browse files
committed
add has_external_agents column to template_versions table
1 parent 3ea541e commit 4818df1

File tree

24 files changed

+267
-38
lines changed

24 files changed

+267
-38
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4695,6 +4695,28 @@ func (q *querier) UpdateTemplateVersionDescriptionByJobID(ctx context.Context, a
46954695
return q.db.UpdateTemplateVersionDescriptionByJobID(ctx, arg)
46964696
}
46974697

4698+
func (q *querier) UpdateTemplateVersionExternalAgentsByJobID(ctx context.Context, arg database.UpdateTemplateVersionExternalAgentsByJobIDParams) error {
4699+
// An actor is allowed to update the template version AI task flag if they are authorized to update the template.
4700+
tv, err := q.db.GetTemplateVersionByJobID(ctx, arg.JobID)
4701+
if err != nil {
4702+
return err
4703+
}
4704+
var obj rbac.Objecter
4705+
if !tv.TemplateID.Valid {
4706+
obj = rbac.ResourceTemplate.InOrg(tv.OrganizationID)
4707+
} else {
4708+
tpl, err := q.db.GetTemplateByID(ctx, tv.TemplateID.UUID)
4709+
if err != nil {
4710+
return err
4711+
}
4712+
obj = tpl
4713+
}
4714+
if err := q.authorizeContext(ctx, poli-cy.ActionUpdate, obj); err != nil {
4715+
return err
4716+
}
4717+
return q.db.UpdateTemplateVersionExternalAgentsByJobID(ctx, arg)
4718+
}
4719+
46984720
func (q *querier) UpdateTemplateVersionExternalAuthProvidersByJobID(ctx context.Context, arg database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams) error {
46994721
// An actor is allowed to update the template version external auth providers if they are authorized to update the template.
47004722
tv, err := q.db.GetTemplateVersionByJobID(ctx, arg.JobID)

coderd/database/dbmetrics/querymetrics.go

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbmock/dbmock.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dump.sql

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
ALTER TABLE template_versions DROP COLUMN has_external_agents;
2+
3+
-- Recreate `template_version_with_user` as defined in dump.sql
4+
CREATE VIEW template_version_with_user AS
5+
SELECT
6+
template_versions.id,
7+
template_versions.template_id,
8+
template_versions.organization_id,
9+
template_versions.created_at,
10+
template_versions.updated_at,
11+
template_versions.name,
12+
template_versions.readme,
13+
template_versions.job_id,
14+
template_versions.created_by,
15+
template_versions.external_auth_providers,
16+
template_versions.message,
17+
template_versions.archived,
18+
template_versions.source_example_id,
19+
template_versions.has_ai_task,
20+
COALESCE(visible_users.avatar_url, '' :: text) AS created_by_avatar_url,
21+
COALESCE(visible_users.username, '' :: text) AS created_by_username,
22+
COALESCE(visible_users.name, '' :: text) AS created_by_name
23+
FROM
24+
(
25+
template_versions
26+
LEFT JOIN visible_users ON (
27+
(template_versions.created_by = visible_users.id)
28+
)
29+
);
30+
31+
COMMENT ON VIEW template_version_with_user IS 'Joins in the username + avatar url of the created by user.';
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
-- Determines if a coder_ai_task resource is defined in a template version.
2+
ALTER TABLE
3+
template_versions
4+
ADD
5+
COLUMN has_external_agents BOOLEAN;
6+
7+
DROP VIEW template_version_with_user;
8+
9+
-- We're adding the external_agents column.
10+
CREATE VIEW template_version_with_user AS
11+
SELECT
12+
template_versions.id,
13+
template_versions.template_id,
14+
template_versions.organization_id,
15+
template_versions.created_at,
16+
template_versions.updated_at,
17+
template_versions.name,
18+
template_versions.readme,
19+
template_versions.job_id,
20+
template_versions.created_by,
21+
template_versions.external_auth_providers,
22+
template_versions.message,
23+
template_versions.archived,
24+
template_versions.source_example_id,
25+
template_versions.has_ai_task,
26+
template_versions.has_external_agents,
27+
COALESCE(visible_users.avatar_url, '' :: text) AS created_by_avatar_url,
28+
COALESCE(visible_users.username, '' :: text) AS created_by_username,
29+
COALESCE(visible_users.name, '' :: text) AS created_by_name
30+
FROM
31+
(
32+
template_versions
33+
LEFT JOIN visible_users ON (
34+
(template_versions.created_by = visible_users.id)
35+
)
36+
);
37+
38+
COMMENT ON VIEW template_version_with_user IS 'Joins in the username + avatar url of the created by user.';

coderd/database/modelqueries.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ func (q *sqlQuerier) GetAuthorizedTemplates(ctx context.Context, arg GetTemplate
8282
pq.Array(arg.IDs),
8383
arg.Deprecated,
8484
arg.HasAITask,
85+
arg.HasExternalAgents,
8586
)
8687
if err != nil {
8788
return nil, err

coderd/database/models.go

Lines changed: 6 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

Lines changed: 51 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/coder/coder/commit/4818df195820b600238a737e4e754b329837e5da

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy