Browse Source

Revert "feat(provisioning): add metadata to integration (#59496)"

This reverts commit 3a2c85b4db87e798ecdc2e4a14b158e731d8617f.

Co-authored-by: wedamija <6288560+wedamija@users.noreply.github.com>
getsentry-bot 1 year ago
parent
commit
05e353db0a

+ 1 - 1
migrations_lockfile.txt

@@ -9,5 +9,5 @@ feedback: 0003_feedback_add_env
 hybridcloud: 0008_add_externalactorreplica
 nodestore: 0002_nodestore_no_dictfield
 replays: 0003_add_size_to_recording_segment
-sentry: 0590_add_metadata_to_sentry_app
+sentry: 0589_add_commit_date_added_indices
 social_auth: 0002_default_auto_field

+ 0 - 1
src/sentry/api/serializers/models/sentry_app.py

@@ -60,7 +60,6 @@ class SentryAppSerializer(Serializer):
             "events": consolidate_events(obj.events),
             "featureData": [],
             "isAlertable": obj.is_alertable,
-            "metadata": obj.metadata,
             "name": obj.name,
             "overview": obj.overview,
             "popularity": obj.popularity,

+ 0 - 47
src/sentry/migrations/0590_add_metadata_to_sentry_app.py

@@ -1,47 +0,0 @@
-# Generated by Django 3.2.23 on 2023-11-06 23:34
-
-from django.db import migrations
-
-import sentry.db.models.fields.jsonfield
-from sentry.new_migrations.migrations import CheckedMigration
-
-
-class Migration(CheckedMigration):
-    # This flag is used to mark that a migration shouldn't be automatically run in production. For
-    # the most part, this should only be used for operations where it's safe to run the migration
-    # after your code has deployed. So this should not be used for most operations that alter the
-    # schema of a table.
-    # Here are some things that make sense to mark as dangerous:
-    # - Large data migrations. Typically we want these to be run manually by ops so that they can
-    #   be monitored and not block the deploy for a long period of time while they run.
-    # - Adding indexes to large tables. Since this can take a long time, we'd generally prefer to
-    #   have ops run this and not block the deploy. Note that while adding an index is a schema
-    #   change, it's completely safe to run the operation after the code has deployed.
-    is_dangerous = False
-
-    dependencies = [
-        ("sentry", "0589_add_commit_date_added_indices"),
-    ]
-
-    operations = [
-        migrations.SeparateDatabaseAndState(
-            state_operations=[
-                migrations.AddField(
-                    model_name="sentryapp",
-                    name="metadata",
-                    field=sentry.db.models.fields.jsonfield.JSONField(default=dict),
-                ),
-            ],
-            database_operations=[
-                migrations.RunSQL(
-                    """
-                    ALTER TABLE "sentry_sentryapp" ADD COLUMN "metadata" json NOT NULL DEFAULT '{}';
-                    """,
-                    reverse_sql="""
-                        ALTER TABLE "sentry_sentryapp" DROP COLUMN "metadata";
-                    """,
-                    hints={"tables": ["sentry_sentryapp"]},
-                )
-            ],
-        )
-    ]

+ 0 - 1
src/sentry/models/integrations/sentry_app.py

@@ -162,7 +162,6 @@ class SentryApp(ParanoidModel, HasApiScopes, Model):
     creator_label = models.TextField(null=True)
 
     popularity = models.PositiveSmallIntegerField(null=True, default=1)
-    metadata = JSONField(default=dict)
 
     objects: ClassVar[SentryAppManager] = SentryAppManager()
 

+ 0 - 3
src/sentry/sentry_apps/apps.py

@@ -3,7 +3,6 @@ from __future__ import annotations
 import dataclasses
 import random
 import string
-from dataclasses import field
 from itertools import chain
 from typing import Any, Iterable, List, Mapping, Set
 
@@ -273,7 +272,6 @@ class SentryAppCreator:
     overview: str | None = None
     allowed_origins: List[str] = dataclasses.field(default_factory=list)
     popularity: int | None = None
-    metadata: dict | None = field(default_factory=dict)
 
     def __post_init__(self) -> None:
         if self.is_internal:
@@ -349,7 +347,6 @@ class SentryAppCreator:
             "creator_user_id": user.id,
             "creator_label": user.email
             or user.username,  # email is not required for some users (sentry apps)
-            "metadata": self.metadata if self.metadata else {},
         }
 
         if self.is_internal:

+ 2 - 4
src/sentry/services/hybrid_cloud/app/impl.py

@@ -1,6 +1,6 @@
 from __future__ import annotations
 
-from typing import Any, Callable, Dict, List, Mapping, Optional
+from typing import Any, Callable, List, Mapping, Optional
 
 from django.db.models import QuerySet
 
@@ -235,7 +235,6 @@ class DatabaseBackedAppService(AppService):
         integration_name: str,
         integration_scopes: List[str],
         integration_creator_id,
-        metadata: Dict[str, Any] | None = None,
     ) -> RpcSentryAppInstallation:
         admin_user = User.objects.get(id=integration_creator_id)
 
@@ -252,12 +251,11 @@ class DatabaseBackedAppService(AppService):
         else:
             sentry_app = SentryAppCreator(
                 name=integration_name,
-                author=admin_user.username,
+                author="test",
                 organization_id=organization_id,
                 is_internal=True,
                 scopes=integration_scopes,
                 verify_install=False,
-                metadata=metadata,
             ).run(user=admin_user)
             installation = SentryAppInstallation.objects.get(sentry_app=sentry_app)
 

+ 1 - 2
src/sentry/services/hybrid_cloud/app/model.py

@@ -6,7 +6,7 @@
 import datetime
 import hmac
 from hashlib import sha256
-from typing import Any, Dict, List, Mapping, Optional, Protocol
+from typing import Any, List, Mapping, Optional, Protocol
 
 from pydantic.fields import Field
 from typing_extensions import TypedDict
@@ -50,7 +50,6 @@ class RpcSentryApp(RpcModel):
     is_internal: bool = True
     is_publish_request_inprogress: bool = False
     status: str = ""
-    metadata: Dict[str, Any] = Field(default_factory=dict)
 
     def show_auth_info(self, access: Any) -> bool:
         encoded_scopes = set({"%s" % scope for scope in list(access.scopes)})

+ 0 - 1
src/sentry/services/hybrid_cloud/app/serial.py

@@ -42,7 +42,6 @@ def serialize_sentry_app(app: SentryApp) -> RpcSentryApp:
         is_internal=app.status == SentryAppStatus.INTERNAL,
         is_publish_request_inprogress=app.status == SentryAppStatus.PUBLISH_REQUEST_INPROGRESS,
         status=SentryAppStatus.as_str(app.status),
-        metadata=app.metadata,
     )
 
 

+ 1 - 2
src/sentry/services/hybrid_cloud/app/service.py

@@ -4,7 +4,7 @@
 # defined, because we want to reflect on type annotations and avoid forward references.
 
 import abc
-from typing import Any, Dict, List, Mapping, Optional
+from typing import Any, List, Mapping, Optional
 
 from sentry.services.hybrid_cloud.app import (
     RpcAlertRuleActionResult,
@@ -142,7 +142,6 @@ class AppService(RpcService):
         integration_name: str,
         integration_scopes: List[str],
         integration_creator_id: int,
-        metadata: Optional[Dict[str, Any]] = None,
     ) -> RpcSentryAppInstallation:
         pass
 

+ 0 - 1
tests/sentry/api/endpoints/test_organization_sentry_apps.py

@@ -64,7 +64,6 @@ class GetOrganizationSentryAppsTest(OrganizationSentryAppsTest):
                     ],
                     "popularity": SentryApp._meta.get_field("popularity").default,
                     "avatars": [],
-                    "metadata": {},
                 }
             ],
         )

Some files were not shown because too many files changed in this diff