From 32068d67edf7856c236f0d9dfd00c5b9f02e4442 Mon Sep 17 00:00:00 2001
From: Dmitry Rodionov <d.rodionov@picodata.io>
Date: Wed, 25 Oct 2023 17:52:04 +0300
Subject: [PATCH] refactor: rename schema_object_type to box_schema_object_type

This patch makes schema_object_type to be exported.

NO_DOC=picodata internal patch
NO_CHANGELOG=picodata internal patch
NO_TEST=picodata internal patch
---
 src/box/alter.cc                             | 96 ++++++++++----------
 src/box/alter.h                              |  2 +-
 src/box/box.cc                               |  4 +-
 src/box/box.h                                |  3 +-
 src/box/call.c                               |  4 +-
 src/box/func.c                               |  5 +-
 src/box/schema.cc                            | 24 ++---
 src/box/schema.h                             | 30 +++---
 src/box/schema_def.c                         | 42 ++++-----
 src/box/schema_def.h                         | 49 ++++++----
 src/box/sequence.c                           |  8 +-
 src/box/session.c                            |  6 +-
 src/box/session.h                            |  2 +-
 src/box/space.c                              |  8 +-
 src/box/sysview.c                            |  6 +-
 src/box/user.cc                              | 35 +++----
 src/box/user.h                               |  6 +-
 src/box/user_def.c                           |  2 +-
 src/box/user_def.h                           |  6 +-
 test/app-luatest/module_api_luatest_test.lua | 25 ++++-
 20 files changed, 206 insertions(+), 157 deletions(-)

diff --git a/src/box/alter.cc b/src/box/alter.cc
index 58f09d0f17..314bab595e 100644
--- a/src/box/alter.cc
+++ b/src/box/alter.cc
@@ -72,7 +72,7 @@ box_schema_version_bump(void)
 
 int
 access_check_ddl(const char *name, uint32_t object_id, uint32_t owner_uid,
-		 enum schema_object_type type,
+		 enum box_schema_object_type type,
 		 enum box_privilege_type priv_type)
 {
 	struct credentials *cr = effective_user();
@@ -118,7 +118,7 @@ access_check_ddl(const char *name, uint32_t object_id, uint32_t owner_uid,
 	const char *object_name;
 	const char *pname;
 	if (access & BOX_PRIVILEGE_USAGE) {
-		object_name = schema_object_name(SC_UNIVERSE);
+		object_name = schema_object_name(BOX_SC_UNIVERSE);
 		pname = priv_name(BOX_PRIVILEGE_USAGE);
 		name = "";
 	} else {
@@ -2236,8 +2236,9 @@ on_replace_dd_space(struct trigger * /* trigger */, void *event)
 			return -1;
 		auto def_guard =
 			make_scoped_guard([=] { space_def_delete(def); });
-		if (access_check_ddl(def->name, def->id, def->uid, SC_SPACE,
-				 BOX_PRIVILEGE_CREATE) != 0)
+		if (access_check_ddl(def->name, def->id, def->uid,
+				     BOX_SC_SPACE,
+				     BOX_PRIVILEGE_CREATE) != 0)
 			return -1;
 		RLIST_HEAD(empty_list);
 		struct space *space = space_new(def, &empty_list);
@@ -2294,7 +2295,7 @@ on_replace_dd_space(struct trigger * /* trigger */, void *event)
 		}
 	} else if (new_tuple == NULL) { /* DELETE */
 		if (access_check_ddl(old_space->def->name, old_space->def->id,
-				 old_space->def->uid, SC_SPACE,
+				 old_space->def->uid, BOX_SC_SPACE,
 				 BOX_PRIVILEGE_DROP) != 0)
 			return -1;
 		/* Verify that the space is empty (has no indexes) */
@@ -2396,8 +2397,9 @@ on_replace_dd_space(struct trigger * /* trigger */, void *event)
 			return -1;
 		auto def_guard =
 			make_scoped_guard([=] { space_def_delete(def); });
-		if (access_check_ddl(def->name, def->id, def->uid, SC_SPACE,
-				 BOX_PRIVILEGE_ALTER) != 0)
+		if (access_check_ddl(def->name, def->id, def->uid,
+				     BOX_SC_SPACE,
+				     BOX_PRIVILEGE_ALTER) != 0)
 			return -1;
 		if (def->id != space_id(old_space)) {
 			diag_set(ClientError, ER_ALTER_SPACE,
@@ -2574,7 +2576,7 @@ on_replace_dd_index(struct trigger * /* trigger */, void *event)
 	if (old_tuple && new_tuple)
 		priv_type = BOX_PRIVILEGE_ALTER;
 	if (access_check_ddl(old_space->def->name, old_space->def->id,
-			 old_space->def->uid, SC_SPACE, priv_type) != 0)
+			 old_space->def->uid, BOX_SC_SPACE, priv_type) != 0)
 		return -1;
 	struct index *old_index = space_index(old_space, iid);
 	struct index_def *old_def = old_index != NULL ? old_index->def : NULL;
@@ -3041,8 +3043,8 @@ user_def_new_from_tuple(struct tuple *tuple)
 	const char *type_str = tuple_field_cstr(tuple, BOX_USER_FIELD_TYPE);
 	if (type_str == NULL)
 		return NULL;
-	enum schema_object_type type = schema_object_type(type_str);
-	if (type != SC_ROLE && type != SC_USER) {
+	enum box_schema_object_type type = schema_object_type(type_str);
+	if (type != BOX_SC_ROLE && type != BOX_SC_USER) {
 		diag_set(ClientError, ER_CREATE_USER,
 			 tt_cstr(name, name_len), "unknown user type");
 		return NULL;
@@ -3070,7 +3072,7 @@ user_def_new_from_tuple(struct tuple *tuple)
 		} else {
 			is_auth_empty = false;
 		}
-		if (!is_auth_empty && user->type == SC_ROLE) {
+		if (!is_auth_empty && user->type == BOX_SC_ROLE) {
 			diag_set(ClientError, ER_CREATE_ROLE, user->name,
 				  "authentication data can not be set for a "\
 				  "role");
@@ -3499,8 +3501,9 @@ on_replace_dd_func(struct trigger * /* trigger */, void *event)
 		auto def_guard = make_scoped_guard([=] {
 			func_def_delete(def);
 		});
-		if (access_check_ddl(def->name, def->fid, def->uid, SC_FUNCTION,
-				 BOX_PRIVILEGE_CREATE) != 0)
+		if (access_check_ddl(def->name, def->fid, def->uid,
+				     BOX_SC_FUNCTION,
+				     BOX_PRIVILEGE_CREATE) != 0)
 			return -1;
 		struct trigger *on_rollback =
 			txn_alter_trigger_new(on_create_func_rollback, NULL);
@@ -3522,8 +3525,9 @@ on_replace_dd_func(struct trigger * /* trigger */, void *event)
 		 * Can only delete func if you're the one
 		 * who created it or a superuser.
 		 */
-		if (access_check_ddl(old_func->def->name, fid, uid, SC_FUNCTION,
-				 BOX_PRIVILEGE_DROP) != 0)
+		if (access_check_ddl(old_func->def->name, fid, uid,
+				     BOX_SC_FUNCTION,
+				     BOX_PRIVILEGE_DROP) != 0)
 			return -1;
 		/* Can only delete func if it has no grants. */
 		bool out;
@@ -3770,7 +3774,7 @@ on_replace_dd_collation(struct trigger * /* trigger */, void *event)
 		struct coll_id *old_coll_id = coll_by_id(old_id);
 		assert(old_coll_id != NULL);
 		if (access_check_ddl(old_coll_id->name, old_coll_id->id,
-				 old_coll_id->owner_id, SC_COLLATION,
+				 old_coll_id->owner_id, BOX_SC_COLLATION,
 				 BOX_PRIVILEGE_DROP) != 0)
 			return -1;
 		/*
@@ -3807,7 +3811,7 @@ on_replace_dd_collation(struct trigger * /* trigger */, void *event)
 		if (coll_id_def_new_from_tuple(new_tuple, &new_def) != 0)
 			return -1;
 		if (access_check_ddl(new_def.name, new_def.id, new_def.owner_id,
-				 SC_COLLATION, BOX_PRIVILEGE_CREATE) != 0)
+				 BOX_SC_COLLATION, BOX_PRIVILEGE_CREATE) != 0)
 			return -1;
 		struct coll_id *new_coll_id = coll_id_new(&new_def);
 		if (new_coll_id == NULL)
@@ -3872,7 +3876,7 @@ priv_def_create_from_tuple(struct priv_def *priv, struct tuple *tuple)
 		    BOX_PRIV_FIELD_OBJECT_ID, &(priv->object_id)) != 0)
 			return -1;
 	}
-	if (priv->object_type == SC_UNKNOWN) {
+	if (priv->object_type == BOX_SC_UNKNOWN) {
 		diag_set(ClientError, ER_UNKNOWN_SCHEMA_OBJECT,
 			  object_type);
 		return -1;
@@ -3914,17 +3918,17 @@ priv_def_check(struct priv_def *priv, enum box_privilege_type priv_type)
 			     priv->object_type, priv_type) != 0)
 		return -1;
 	switch (priv->object_type) {
-	case SC_UNIVERSE:
+	case BOX_SC_UNIVERSE:
 		if (grantor->def->uid != ADMIN) {
 			diag_set(AccessDeniedError,
 				  priv_name(priv_type),
-				  schema_object_name(SC_UNIVERSE),
+				  schema_object_name(BOX_SC_UNIVERSE),
 				  name,
 				  grantor->def->name);
 			return -1;
 		}
 		break;
-	case SC_SPACE:
+	case BOX_SC_SPACE:
 	{
 		struct space *space = space_cache_find(priv->object_id);
 		if (space == NULL)
@@ -3933,7 +3937,7 @@ priv_def_check(struct priv_def *priv, enum box_privilege_type priv_type)
 		    grantor->def->uid != ADMIN) {
 			diag_set(AccessDeniedError,
 				  priv_name(priv_type),
-				  schema_object_name(SC_SPACE), name,
+				  schema_object_name(BOX_SC_SPACE), name,
 				  grantor->def->name);
 			return -1;
 		}
@@ -3944,7 +3948,7 @@ priv_def_check(struct priv_def *priv, enum box_privilege_type priv_type)
 		}
 		break;
 	}
-	case SC_FUNCTION:
+	case BOX_SC_FUNCTION:
 	{
 		struct func *func = func_by_id(priv->object_id);
 		if (func == NULL) {
@@ -3955,13 +3959,13 @@ priv_def_check(struct priv_def *priv, enum box_privilege_type priv_type)
 		    grantor->def->uid != ADMIN) {
 			diag_set(AccessDeniedError,
 				  priv_name(priv_type),
-				  schema_object_name(SC_FUNCTION), name,
+				  schema_object_name(BOX_SC_FUNCTION), name,
 				  grantor->def->name);
 			return -1;
 		}
 		break;
 	}
-	case SC_SEQUENCE:
+	case BOX_SC_SEQUENCE:
 	{
 		struct sequence *seq = sequence_by_id(priv->object_id);
 		if (seq == NULL) {
@@ -3972,16 +3976,16 @@ priv_def_check(struct priv_def *priv, enum box_privilege_type priv_type)
 		    grantor->def->uid != ADMIN) {
 			diag_set(AccessDeniedError,
 				  priv_name(priv_type),
-				  schema_object_name(SC_SEQUENCE), name,
+				  schema_object_name(BOX_SC_SEQUENCE), name,
 				  grantor->def->name);
 			return -1;
 		}
 		break;
 	}
-	case SC_ROLE:
+	case BOX_SC_ROLE:
 	{
 		struct user *role = user_by_id(priv->object_id);
-		if (role == NULL || role->def->type != SC_ROLE) {
+		if (role == NULL || role->def->type != BOX_SC_ROLE) {
 			diag_set(ClientError, ER_NO_SUCH_ROLE,
 				  role ? role->def->name :
 				  int2str(priv->object_id));
@@ -3997,7 +4001,7 @@ priv_def_check(struct priv_def *priv, enum box_privilege_type priv_type)
 			 priv->access != BOX_PRIVILEGE_EXECUTE)) {
 			diag_set(AccessDeniedError,
 				  priv_name(priv_type),
-				  schema_object_name(SC_ROLE), name,
+				  schema_object_name(BOX_SC_ROLE), name,
 				  grantor->def->name);
 			return -1;
 		}
@@ -4006,10 +4010,10 @@ priv_def_check(struct priv_def *priv, enum box_privilege_type priv_type)
 			return -1;
 		break;
 	}
-	case SC_USER:
+	case BOX_SC_USER:
 	{
 		struct user *user = user_by_id(priv->object_id);
-		if (user == NULL || user->def->type != SC_USER) {
+		if (user == NULL || user->def->type != BOX_SC_USER) {
 			diag_set(ClientError, ER_NO_SUCH_USER,
 				  user ? user->def->name :
 				  int2str(priv->object_id));
@@ -4019,17 +4023,17 @@ priv_def_check(struct priv_def *priv, enum box_privilege_type priv_type)
 		    grantor->def->uid != ADMIN) {
 			diag_set(AccessDeniedError,
 				  priv_name(priv_type),
-				  schema_object_name(SC_USER), name,
+				  schema_object_name(BOX_SC_USER), name,
 				  grantor->def->name);
 			return -1;
 		}
 		break;
 	}
-	case SC_ENTITY_SPACE:
-	case SC_ENTITY_FUNCTION:
-	case SC_ENTITY_SEQUENCE:
-	case SC_ENTITY_ROLE:
-	case SC_ENTITY_USER:
+	case BOX_SC_ENTITY_SPACE:
+	case BOX_SC_ENTITY_FUNCTION:
+	case BOX_SC_ENTITY_SEQUENCE:
+	case BOX_SC_ENTITY_ROLE:
+	case BOX_SC_ENTITY_USER:
 	{
 		/* Only admin may grant privileges on an entire entity. */
 		if (grantor->def->uid != ADMIN) {
@@ -4065,10 +4069,10 @@ grant_or_revoke(struct priv_def *priv, struct txn_stmt *rolled_back_stmt)
 	 * Grant a role to a user only when privilege type is 'execute'
 	 * and the role is specified.
 	 */
-	if (priv->object_type == SC_ROLE &&
+	if (priv->object_type == BOX_SC_ROLE &&
 	    !(priv->access & ~BOX_PRIVILEGE_EXECUTE)) {
 		struct user *role = user_by_id(priv->object_id);
-		if (role == NULL || role->def->type != SC_ROLE)
+		if (role == NULL || role->def->type != BOX_SC_ROLE)
 			return 0;
 		if (priv->access) {
 			if (role_grant(grantee, role) != 0)
@@ -4581,7 +4585,7 @@ on_replace_dd_sequence(struct trigger * /* trigger */, void *event)
 		if (new_def == NULL)
 			return -1;
 		if (access_check_ddl(new_def->name, new_def->id, new_def->uid,
-				 SC_SEQUENCE, BOX_PRIVILEGE_CREATE) != 0)
+				 BOX_SC_SEQUENCE, BOX_PRIVILEGE_CREATE) != 0)
 			return -1;
 		struct trigger *on_rollback =
 			txn_alter_trigger_new(on_create_sequence_rollback, NULL);
@@ -4600,7 +4604,7 @@ on_replace_dd_sequence(struct trigger * /* trigger */, void *event)
 		seq = sequence_by_id(id);
 		assert(seq != NULL);
 		if (access_check_ddl(seq->def->name, seq->def->id, seq->def->uid,
-				 SC_SEQUENCE, BOX_PRIVILEGE_DROP) != 0)
+				 BOX_SC_SEQUENCE, BOX_PRIVILEGE_DROP) != 0)
 			return -1;
 		bool out;
 		if (space_has_data(BOX_SEQUENCE_DATA_ID, 0, id, &out) != 0)
@@ -4642,7 +4646,7 @@ on_replace_dd_sequence(struct trigger * /* trigger */, void *event)
 		seq = sequence_by_id(new_def->id);
 		assert(seq != NULL);
 		if (access_check_ddl(seq->def->name, seq->def->id, seq->def->uid,
-				 SC_SEQUENCE, BOX_PRIVILEGE_ALTER) != 0)
+				 BOX_SC_SEQUENCE, BOX_PRIVILEGE_ALTER) != 0)
 			return -1;
 		struct trigger *on_commit =
 			txn_alter_trigger_new(on_alter_sequence_commit, seq->def);
@@ -4878,7 +4882,7 @@ on_replace_dd_space_sequence(struct trigger * /* trigger */, void *event)
 	/* Check we have the correct access type on the sequence.  * */
 	if (is_generated || !stmt->new_tuple) {
 		if (access_check_ddl(seq->def->name, seq->def->id, seq->def->uid,
-				 SC_SEQUENCE, priv_type) != 0)
+				 BOX_SC_SEQUENCE, priv_type) != 0)
 			return -1;
 	} else {
 		/*
@@ -4886,15 +4890,15 @@ on_replace_dd_space_sequence(struct trigger * /* trigger */, void *event)
 		 * check that it has read and write access.
 		 */
 		if (access_check_ddl(seq->def->name, seq->def->id, seq->def->uid,
-				 SC_SEQUENCE, BOX_PRIVILEGE_READ) != 0)
+				 BOX_SC_SEQUENCE, BOX_PRIVILEGE_READ) != 0)
 			return -1;
 		if (access_check_ddl(seq->def->name, seq->def->id, seq->def->uid,
-				 SC_SEQUENCE, BOX_PRIVILEGE_WRITE) != 0)
+				 BOX_SC_SEQUENCE, BOX_PRIVILEGE_WRITE) != 0)
 			return -1;
 	}
 	/** Check we have alter access on space. */
 	if (access_check_ddl(space->def->name, space->def->id, space->def->uid,
-			 SC_SPACE, BOX_PRIVILEGE_ALTER) != 0)
+			 BOX_SC_SPACE, BOX_PRIVILEGE_ALTER) != 0)
 		return -1;
 
 	if (stmt->new_tuple != NULL) {			/* INSERT, UPDATE */
diff --git a/src/box/alter.h b/src/box/alter.h
index 6f1d862337..58814d136c 100644
--- a/src/box/alter.h
+++ b/src/box/alter.h
@@ -53,7 +53,7 @@ extern struct trigger on_replace_func_index;
  */
 int
 access_check_ddl(const char *name, uint32_t object_id, uint32_t owner_uid,
-		 enum schema_object_type type,
+		 enum box_schema_object_type type,
 		 enum box_privilege_type priv_type);
 
 #endif /* INCLUDES_TARANTOOL_BOX_ALTER_H */
diff --git a/src/box/box.cc b/src/box/box.cc
index d924d2db18..c82acf71ba 100644
--- a/src/box/box.cc
+++ b/src/box/box.cc
@@ -3991,13 +3991,13 @@ box_access_check_space(uint32_t space_id, uint16_t access)
 API_EXPORT int
 box_access_check_ddl(
 	const char *name, uint32_t object_id, uint32_t owner_uid,
-    uint32_t object_type, uint16_t access)
+    enum box_schema_object_type object_type, uint16_t access)
 {
 	return access_check_ddl(
 		name,
 		object_id,
 		owner_uid,
-		(enum schema_object_type)object_type,
+		(enum box_schema_object_type)object_type,
 		(enum box_privilege_type)access);
 }
 
diff --git a/src/box/box.h b/src/box/box.h
index d3eca01900..60dd48c12b 100644
--- a/src/box/box.h
+++ b/src/box/box.h
@@ -31,6 +31,7 @@
  * SUCH DAMAGE.
  */
 #include "trivia/util.h"
+#include "schema_def.h"
 
 #include <stdbool.h>
 
@@ -790,7 +791,7 @@ box_access_check_space(uint32_t space_id, uint16_t access);
  */
 API_EXPORT int
 box_access_check_ddl(const char *name, uint32_t object_id, uint32_t owner_uid,
-		     uint32_t object_type, uint16_t access);
+		     enum box_schema_object_type object_type, uint16_t access);
 
 /**
  * Sends a packet with the given header and body over the IPROTO session's
diff --git a/src/box/call.c b/src/box/call.c
index cfb6079163..db8e01ed1c 100644
--- a/src/box/call.c
+++ b/src/box/call.c
@@ -128,7 +128,7 @@ box_module_reload(const char *name)
 		struct user *user = user_find(credentials->uid);
 		if (user != NULL)
 			diag_set(AccessDeniedError, priv_name(BOX_PRIVILEGE_USAGE),
-				 schema_object_name(SC_UNIVERSE), "",
+				 schema_object_name(BOX_SC_UNIVERSE), "",
 				 user->def->name);
 		return -1;
 	}
@@ -175,7 +175,7 @@ box_process_call(struct call_request *request, struct port *port)
 	} else {
 		if (access_check_universe_object(
 				BOX_PRIVILEGE_EXECUTE | BOX_PRIVILEGE_USAGE,
-				SC_FUNCTION,
+				BOX_SC_FUNCTION,
 				tt_cstr(name, name_len)) != 0)
 			return -1;
 		box_run_on_call(IPROTO_CALL, name, name_len, request->args);
diff --git a/src/box/func.c b/src/box/func.c
index 1ec1eb245d..64f6bea6f1 100644
--- a/src/box/func.c
+++ b/src/box/func.c
@@ -564,7 +564,8 @@ func_access_check(struct func *func)
 	box_user_access_mask_t access =
 		BOX_PRIVILEGE_EXECUTE | BOX_PRIVILEGE_USAGE;
 	/* Check access for all functions. */
-	access &= ~entity_access_get(SC_FUNCTION)[credentials->auth_token].effective;
+	access &= ~entity_access_get(
+		BOX_SC_FUNCTION)[credentials->auth_token].effective;
 	box_user_access_mask_t func_access =
 		access & ~credentials->universal_access;
 	if ((func_access & BOX_PRIVILEGE_USAGE) != 0 ||
@@ -574,7 +575,7 @@ func_access_check(struct func *func)
 		struct user *user = user_find(credentials->uid);
 		if (user != NULL) {
 			diag_set(AccessDeniedError, priv_name(BOX_PRIVILEGE_EXECUTE),
-				 schema_object_name(SC_FUNCTION),
+				 schema_object_name(BOX_SC_FUNCTION),
 				 func->def->name, user->def->name);
 		}
 		return -1;
diff --git a/src/box/schema.cc b/src/box/schema.cc
index 2411a23f2c..0f57bab7d5 100644
--- a/src/box/schema.cc
+++ b/src/box/schema.cc
@@ -488,17 +488,17 @@ sequence_cache_delete(uint32_t id)
 }
 
 const char *
-schema_find_name(enum schema_object_type type, uint32_t object_id)
+schema_find_name(enum box_schema_object_type type, uint32_t object_id)
 {
 	switch (type) {
-	case SC_UNIVERSE:
-	case SC_ENTITY_SPACE:
-	case SC_ENTITY_FUNCTION:
-	case SC_ENTITY_SEQUENCE:
-	case SC_ENTITY_ROLE:
-	case SC_ENTITY_USER:
+	case BOX_SC_UNIVERSE:
+	case BOX_SC_ENTITY_SPACE:
+	case BOX_SC_ENTITY_FUNCTION:
+	case BOX_SC_ENTITY_SEQUENCE:
+	case BOX_SC_ENTITY_ROLE:
+	case BOX_SC_ENTITY_USER:
 		return "";
-	case SC_SPACE:
+	case BOX_SC_SPACE:
 		{
 			struct space *space = space_by_id(object_id);
 			if (space != NULL)
@@ -507,7 +507,7 @@ schema_find_name(enum schema_object_type type, uint32_t object_id)
 				 tt_sprintf("%d", object_id));
 			break;
 		}
-	case SC_FUNCTION:
+	case BOX_SC_FUNCTION:
 		{
 			struct func *func = func_by_id(object_id);
 			if (func != NULL)
@@ -516,7 +516,7 @@ schema_find_name(enum schema_object_type type, uint32_t object_id)
 				 tt_sprintf("%d", object_id));
 			break;
 		}
-	case SC_SEQUENCE:
+	case BOX_SC_SEQUENCE:
 		{
 			struct sequence *seq = sequence_by_id(object_id);
 			if (seq != NULL)
@@ -525,7 +525,7 @@ schema_find_name(enum schema_object_type type, uint32_t object_id)
 				 tt_sprintf("%d", object_id));
 			break;
 		}
-	case SC_ROLE:
+	case BOX_SC_ROLE:
 		{
 			struct user *role = user_by_id(object_id);
 			if (role != NULL)
@@ -534,7 +534,7 @@ schema_find_name(enum schema_object_type type, uint32_t object_id)
 				 tt_sprintf("%d", object_id));
 			break;
 		}
-	case SC_USER:
+	case BOX_SC_USER:
 		{
 			struct user *user = user_by_id(object_id);
 			if (user != NULL)
diff --git a/src/box/schema.h b/src/box/schema.h
index 05f715c4f5..64bf799ccf 100644
--- a/src/box/schema.h
+++ b/src/box/schema.h
@@ -83,7 +83,7 @@ box_dd_version_id(void);
  * @return NULL if object of type not found, otherwise name of object.
  */
 const char *
-schema_find_name(enum schema_object_type type, uint32_t object_id);
+schema_find_name(enum box_schema_object_type type, uint32_t object_id);
 
 /**
  * Find a sequence by id. Return NULL if the sequence was
@@ -191,25 +191,27 @@ struct entity_access {
 /** A single instance of the global entities. */
 extern struct entity_access entity_access;
 
-static inline
-struct access *
-entity_access_get(enum schema_object_type type)
+/**
+ * Get access structure corresponding to given object type
+ */
+static inline struct access *
+entity_access_get(enum box_schema_object_type type)
 {
 	switch (type) {
-	case SC_SPACE:
-	case SC_ENTITY_SPACE:
+	case BOX_SC_SPACE:
+	case BOX_SC_ENTITY_SPACE:
 		return entity_access.space;
-	case SC_FUNCTION:
-	case SC_ENTITY_FUNCTION:
+	case BOX_SC_FUNCTION:
+	case BOX_SC_ENTITY_FUNCTION:
 		return entity_access.function;
-	case SC_USER:
-	case SC_ENTITY_USER:
+	case BOX_SC_USER:
+	case BOX_SC_ENTITY_USER:
 		return entity_access.user;
-	case SC_ROLE:
-	case SC_ENTITY_ROLE:
+	case BOX_SC_ROLE:
+	case BOX_SC_ENTITY_ROLE:
 		return entity_access.role;
-	case SC_SEQUENCE:
-	case SC_ENTITY_SEQUENCE:
+	case BOX_SC_SEQUENCE:
+	case BOX_SC_ENTITY_SEQUENCE:
 		return entity_access.sequence;
 	default:
 		return NULL;
diff --git a/src/box/schema_def.c b/src/box/schema_def.c
index f028efe4a8..2109973ece 100644
--- a/src/box/schema_def.c
+++ b/src/box/schema_def.c
@@ -36,43 +36,43 @@ const char *sql_storage_engine_strs[] = {
 };
 
 static const char *object_type_strs[] = {
-	/* [SC_UKNNOWN]         = */ "unknown",
-	/* [SC_UNIVERSE]        = */ "universe",
-	/* [SC_SPACE]           = */ "space",
-	/* [SC_FUNCTION]        = */ "function",
-	/* [SC_USER]            = */ "user",
-	/* [SC_ROLE]            = */ "role",
-	/* [SC_SEQUENCE]        = */ "sequence",
-	/* [SC_COLLATION]       = */ "collation",
+	/* [BOX_SC_UKNNOWN]             = */ "unknown",
+	/* [BOX_SC_UNIVERSE]        = */ "universe",
+	/* [BOX_SC_SPACE]           = */ "space",
+	/* [BOX_SC_FUNCTION]        = */ "function",
+	/* [BOX_SC_USER]            = */ "user",
+	/* [BOX_SC_ROLE]            = */ "role",
+	/* [BOX_SC_SEQUENCE]        = */ "sequence",
+	/* [BOX_SC_COLLATION]       = */ "collation",
 };
 
 /** Given object type @type, return corresponding entity type. */
-static enum schema_object_type
-schema_object_type_to_entity(enum schema_object_type type)
+static enum box_schema_object_type
+schema_object_type_to_entity(enum box_schema_object_type type)
 {
-	assert(type >= SC_SPACE);
+	assert(type >= BOX_SC_SPACE);
 	assert((int) type < (int) schema_object_type_MAX);
 	return type + schema_object_type_MAX - 1;
 }
 
 /** Given entity type @type, return corresponding object type. */
-static enum schema_object_type
-schema_entity_type_to_object(enum schema_object_type type)
+static enum box_schema_object_type
+schema_entity_type_to_object(enum box_schema_object_type type)
 {
 	assert((int) type > (int) schema_object_type_MAX);
 	assert((int) type < (int) schema_entity_type_MAX);
 	return (type % (schema_object_type_MAX)) + 1;
 }
 
-enum schema_object_type
-schema_entity_type(enum schema_object_type type)
+enum box_schema_object_type
+schema_entity_type(enum box_schema_object_type type)
 {
-	if (type <= SC_UNIVERSE || type >= schema_object_type_MAX)
-		return SC_UNKNOWN;
+	if (type <= BOX_SC_UNIVERSE || type >= schema_object_type_MAX)
+		return BOX_SC_UNKNOWN;
 	return schema_object_type_to_entity(type);
 }
 
-enum schema_object_type
+enum box_schema_object_type
 schema_object_type(const char *name)
 {
 	/**
@@ -82,18 +82,18 @@ schema_object_type(const char *name)
 	 */
 	int n_strs = sizeof(object_type_strs)/sizeof(*object_type_strs);
 	int index = strindex(object_type_strs, name, n_strs);
-	return (enum schema_object_type) (index == n_strs ? 0 : index);
+	return (enum box_schema_object_type)(index == n_strs ? 0 : index);
 }
 
 const char *
-schema_object_name(enum schema_object_type type)
+schema_object_name(enum box_schema_object_type type)
 {
 	assert((int) type < (int) schema_object_type_MAX);
 	return object_type_strs[type];
 }
 
 const char *
-schema_entity_name(enum schema_object_type type)
+schema_entity_name(enum box_schema_object_type type)
 {
 	return object_type_strs[schema_entity_type_to_object(type)];
 }
diff --git a/src/box/schema_def.h b/src/box/schema_def.h
index 7d2bf8602b..8380701bc0 100644
--- a/src/box/schema_def.h
+++ b/src/box/schema_def.h
@@ -305,29 +305,32 @@ enum {
  * Use 0 for unknown to use the same index consistently
  * even when there are more object types in the future.
  */
-enum schema_object_type {
-	SC_UNKNOWN = 0,
-	SC_UNIVERSE = 1,
-	SC_SPACE = 2,
-	SC_FUNCTION = 3,
-	SC_USER = 4,
-	SC_ROLE = 5,
-	SC_SEQUENCE = 6,
-	SC_COLLATION = 7,
+/** \cond public */
+enum box_schema_object_type {
+	BOX_SC_UNKNOWN = 0,
+	BOX_SC_UNIVERSE = 1,
+	BOX_SC_SPACE = 2,
+	BOX_SC_FUNCTION = 3,
+	BOX_SC_USER = 4,
+	BOX_SC_ROLE = 5,
+	BOX_SC_SEQUENCE = 6,
+	BOX_SC_COLLATION = 7,
 	/*
 	 * All object types are supposed to be above this point,
 	 * all entity types - below.
 	 */
 	schema_object_type_MAX = 8,
-	SC_ENTITY_SPACE,
-	SC_ENTITY_FUNCTION,
-	SC_ENTITY_USER,
-	SC_ENTITY_ROLE,
-	SC_ENTITY_SEQUENCE,
-	SC_ENTITY_COLLATION,
+	BOX_SC_ENTITY_SPACE,
+	BOX_SC_ENTITY_FUNCTION,
+	BOX_SC_ENTITY_USER,
+	BOX_SC_ENTITY_ROLE,
+	BOX_SC_ENTITY_SEQUENCE,
+	BOX_SC_ENTITY_COLLATION,
 	schema_entity_type_MAX = 15
 };
 
+/** \endcond public */
+
 /** SQL Storage engine. */
 enum sql_storage_engine {
     SQL_STORAGE_ENGINE_MEMTX = 0,
@@ -340,17 +343,23 @@ extern const char *sql_storage_engine_strs[];
 /**
  * Given a object type, return an entity type it belongs to.
  */
-enum schema_object_type
-schema_entity_type(enum schema_object_type type);
+enum box_schema_object_type
+schema_entity_type(enum box_schema_object_type type);
 
-enum schema_object_type
+enum box_schema_object_type
 schema_object_type(const char *name);
 
+/**
+ * Given an object type, return corresponding object name.
+ */
 const char *
-schema_object_name(enum schema_object_type type);
+schema_object_name(enum box_schema_object_type type);
 
+/**
+ * Given an object type, return entity name it belongs to.
+ */
 const char *
-schema_entity_name(enum schema_object_type type);
+schema_entity_name(enum box_schema_object_type type);
 
 /**
  * Check that the space id corresponds to a system space, which means that is
diff --git a/src/box/sequence.c b/src/box/sequence.c
index c6f38d3774..1aa777687a 100644
--- a/src/box/sequence.c
+++ b/src/box/sequence.c
@@ -273,7 +273,8 @@ access_check_sequence(struct sequence *seq)
 	box_user_access_mask_t access =
 		BOX_PRIVILEGE_USAGE | BOX_PRIVILEGE_WRITE;
 	box_user_access_mask_t sequence_access = access & ~cr->universal_access;
-	sequence_access &= ~entity_access_get(SC_SEQUENCE)[cr->auth_token].effective;
+	sequence_access &= ~entity_access_get(
+		BOX_SC_SEQUENCE)[cr->auth_token].effective;
 	if (sequence_access &&
 	    /* Check for missing Usage access, ignore owner rights. */
 	    (sequence_access & BOX_PRIVILEGE_USAGE ||
@@ -287,12 +288,13 @@ access_check_sequence(struct sequence *seq)
 			if (!(cr->universal_access & BOX_PRIVILEGE_USAGE)) {
 				diag_set(AccessDeniedError,
 					 priv_name(BOX_PRIVILEGE_USAGE),
-					 schema_object_name(SC_UNIVERSE), "",
+					 schema_object_name(BOX_SC_UNIVERSE),
+					 "",
 					 user->def->name);
 			} else {
 				diag_set(AccessDeniedError,
 					 priv_name(access),
-					 schema_object_name(SC_SEQUENCE),
+					 schema_object_name(BOX_SC_SEQUENCE),
 					 seq->def->name, user->def->name);
 			}
 		}
diff --git a/src/box/session.c b/src/box/session.c
index 6867337862..6d3c0ab032 100644
--- a/src/box/session.c
+++ b/src/box/session.c
@@ -450,7 +450,7 @@ access_check_session(struct user *user)
 	if (!(universe.access[user->auth_token].effective &
 		BOX_PRIVILEGE_SESSION)) {
 		diag_set(AccessDeniedError, priv_name(BOX_PRIVILEGE_SESSION),
-			 schema_object_name(SC_UNIVERSE), "",
+			 schema_object_name(BOX_SC_UNIVERSE), "",
 			 user->def->name);
 		return -1;
 	}
@@ -459,7 +459,7 @@ access_check_session(struct user *user)
 
 int
 access_check_universe_object(box_user_access_mask_t access,
-			     enum schema_object_type object_type,
+			     enum box_schema_object_type object_type,
 			     const char *object_name)
 {
 	struct credentials *credentials = effective_user();
@@ -494,7 +494,7 @@ access_check_universe_object(box_user_access_mask_t access,
 int
 access_check_universe(box_user_access_mask_t access)
 {
-	return access_check_universe_object(access, SC_UNIVERSE, "");
+	return access_check_universe_object(access, BOX_SC_UNIVERSE, "");
 }
 
 int
diff --git a/src/box/session.h b/src/box/session.h
index 0fa835412d..673b62042a 100644
--- a/src/box/session.h
+++ b/src/box/session.h
@@ -402,7 +402,7 @@ access_check_universe(box_user_access_mask_t access);
  */
 int
 access_check_universe_object(box_user_access_mask_t access,
-			     enum schema_object_type object_type,
+			     enum box_schema_object_type object_type,
 			     const char *object_name);
 
 static inline int
diff --git a/src/box/space.c b/src/box/space.c
index 2335a11c29..201f64dc37 100644
--- a/src/box/space.c
+++ b/src/box/space.c
@@ -73,7 +73,8 @@ access_check_space(struct space *space, box_user_access_mask_t access)
 	 * Similarly to global access, subtract entity-level access
 	 * (access to all spaces) if it is present.
 	 */
-	space_access &= ~entity_access_get(SC_SPACE)[cr->auth_token].effective;
+	space_access &= ~entity_access_get(
+		BOX_SC_SPACE)[cr->auth_token].effective;
 
 	if (space_access &&
 	    /* Check for missing USAGE access, ignore owner rights. */
@@ -92,12 +93,13 @@ access_check_space(struct space *space, box_user_access_mask_t access)
 			if (!(cr->universal_access & BOX_PRIVILEGE_USAGE)) {
 				diag_set(AccessDeniedError,
 					 priv_name(BOX_PRIVILEGE_USAGE),
-					 schema_object_name(SC_UNIVERSE), "",
+					 schema_object_name(BOX_SC_UNIVERSE),
+					 "",
 					 user->def->name);
 			} else {
 				diag_set(AccessDeniedError,
 					 priv_name(access),
-					 schema_object_name(SC_SPACE),
+					 schema_object_name(BOX_SC_SPACE),
 					 space->def->name, user->def->name);
 			}
 		}
diff --git a/src/box/sysview.c b/src/box/sysview.c
index 8ced197763..77190f97bf 100644
--- a/src/box/sysview.c
+++ b/src/box/sysview.c
@@ -285,7 +285,7 @@ vspace_filter(struct space *source, struct tuple *tuple)
 	if (PRIV_WRDA & cr->universal_access)
 		return true;
 	/* Allow access for a user with space privileges. */
-	if (PRIV_WRDA & entity_access_get(SC_SPACE)[cr->auth_token].effective)
+	if (PRIV_WRDA & entity_access_get(BOX_SC_SPACE)[cr->auth_token].effective)
 		return true;
 	if (BOX_PRIVILEGE_READ & source->access[cr->auth_token].effective)
 		return true; /* read access to _space space */
@@ -363,7 +363,7 @@ vfunc_filter(struct space *source, struct tuple *tuple)
 		return true;
 	/* Allow access for a user with function privileges. */
 	if ((PRIV_WRDA | BOX_PRIVILEGE_EXECUTE) &
-	    entity_access_get(SC_FUNCTION)[cr->auth_token].effective)
+	    entity_access_get(BOX_SC_FUNCTION)[cr->auth_token].effective)
 		return true;
 	if (BOX_PRIVILEGE_READ & source->access[cr->auth_token].effective)
 		return true; /* read access to _func space */
@@ -393,7 +393,7 @@ vsequence_filter(struct space *source, struct tuple *tuple)
 		return true;
 	/* Allow access for a user with sequence privileges. */
 	if ((PRIV_WRDA | BOX_PRIVILEGE_EXECUTE) &
-	    entity_access_get(SC_SEQUENCE)[cr->auth_token].effective)
+	    entity_access_get(BOX_SC_SEQUENCE)[cr->auth_token].effective)
 		return true;
 	if (BOX_PRIVILEGE_READ & source->access[cr->auth_token].effective)
 		return true; /* read access to _sequence space */
diff --git a/src/box/user.cc b/src/box/user.cc
index 87fff3e762..c9836f4518 100644
--- a/src/box/user.cc
+++ b/src/box/user.cc
@@ -214,69 +214,69 @@ user_grant_priv(struct user *user, struct priv_def *def)
  * given object type and object id.
  */
 struct access *
-access_find(enum schema_object_type object_type, uint32_t object_id)
+access_find(enum box_schema_object_type object_type, uint32_t object_id)
 {
 	struct access *access = NULL;
 	switch (object_type) {
-	case SC_UNIVERSE:
+	case BOX_SC_UNIVERSE:
 	{
 		access = universe.access;
 		break;
 	}
-	case SC_ENTITY_SPACE:
+	case BOX_SC_ENTITY_SPACE:
 	{
 		access = entity_access.space;
 		break;
 	}
-	case SC_ENTITY_FUNCTION:
+	case BOX_SC_ENTITY_FUNCTION:
 	{
 		access = entity_access.function;
 		break;
 	}
-	case SC_ENTITY_USER:
+	case BOX_SC_ENTITY_USER:
 	{
 		access = entity_access.user;
 		break;
 	}
-	case SC_ENTITY_ROLE:
+	case BOX_SC_ENTITY_ROLE:
 	{
 		access = entity_access.role;
 		break;
 	}
-	case SC_ENTITY_SEQUENCE:
+	case BOX_SC_ENTITY_SEQUENCE:
 	{
 		access = entity_access.sequence;
 		break;
 	}
-	case SC_SPACE:
+	case BOX_SC_SPACE:
 	{
 		struct space *space = space_by_id(object_id);
 		if (space)
 			access = space->access;
 		break;
 	}
-	case SC_FUNCTION:
+	case BOX_SC_FUNCTION:
 	{
 		struct func *func = func_by_id(object_id);
 		if (func)
 			access = func->access;
 		break;
 	}
-	case SC_USER:
+	case BOX_SC_USER:
 	{
 		struct user *user = user_by_id(object_id);
 		if (user)
 			access = user->access;
 		break;
 	}
-	case SC_ROLE:
+	case BOX_SC_ROLE:
 	{
 		struct user *role = user_by_id(object_id);
 		if (role)
 			access = role->access;
 		break;
 	}
-	case SC_SEQUENCE:
+	case BOX_SC_SEQUENCE:
 	{
 		struct sequence *seq = sequence_by_id(object_id);
 		if (seq)
@@ -324,7 +324,7 @@ user_reload_priv(struct user *user, struct tuple *tuple)
 	 * Skip role grants, we're only
 	 * interested in real objects.
 	 */
-	if (priv.object_type != SC_ROLE ||
+	if (priv.object_type != BOX_SC_ROLE ||
 	    !(priv.access & BOX_PRIVILEGE_EXECUTE))
 		return user_grant_priv(user, &priv);
 	return 0;
@@ -584,7 +584,7 @@ user_find_by_name(const char *name, uint32_t len)
 		return NULL;
 	if (uid != BOX_ID_NIL) {
 		struct user *user = user_by_id(uid);
-		if (user != NULL && user->def->type == SC_USER)
+		if (user != NULL && user->def->type == BOX_SC_USER)
 			return user;
 	}
 	diag_set(ClientError, ER_NO_SUCH_USER,
@@ -607,7 +607,7 @@ user_cache_init(void)
 	 * updated with snapshot contents during recovery.
 	 */
 	const char *name = "guest";
-	struct user_def *def = user_def_new(GUEST, ADMIN, SC_USER,
+	struct user_def *def = user_def_new(GUEST, ADMIN, BOX_SC_USER,
 					    name, strlen(name));
 	/* Free def in a case of exception. */
 	auto guest_def_guard = make_scoped_guard([=] { user_def_delete(def); });
@@ -619,7 +619,7 @@ user_cache_init(void)
 	(void) user;
 
 	name = "admin";
-	def = user_def_new(ADMIN, ADMIN, SC_USER, name, strlen(name));
+	def = user_def_new(ADMIN, ADMIN, BOX_SC_USER, name, strlen(name));
 	auto admin_def_guard = make_scoped_guard([=] { user_def_delete(def); });
 	user = user_cache_replace(def);
 	admin_def_guard.is_active = false;
@@ -817,7 +817,8 @@ priv_grant(struct user *grantee, struct priv_def *priv,
 	struct access *object = access_find(priv->object_type, priv->object_id);
 	if (object == NULL)
 		return 0;
-	if (grantee->auth_token == ADMIN && priv->object_type == SC_UNIVERSE &&
+	if (grantee->auth_token == ADMIN &&
+	    priv->object_type == BOX_SC_UNIVERSE &&
 	    priv->access != USER_ACCESS_FULL) {
 		diag_set(ClientError, ER_GRANT,
 			 "can't revoke universe from the admin user");
diff --git a/src/box/user.h b/src/box/user.h
index 654a5ecdaa..a0c5b6e87a 100644
--- a/src/box/user.h
+++ b/src/box/user.h
@@ -99,8 +99,12 @@ struct user
 	struct access access[BOX_USER_MAX];
 };
 
+/**
+ * Find the corresponding access structure
+ * given object type and object id.
+ */
 struct access *
-access_find(enum schema_object_type object_type, uint32_t object_id);
+access_find(enum box_schema_object_type object_type, uint32_t object_id);
 
 /** Find user by id. */
 struct user *
diff --git a/src/box/user_def.c b/src/box/user_def.c
index a17ddbaf8a..05c208ae36 100644
--- a/src/box/user_def.c
+++ b/src/box/user_def.c
@@ -40,7 +40,7 @@ priv_name(box_user_access_mask_t access)
 }
 
 struct user_def *
-user_def_new(uint32_t uid, uint32_t owner, enum schema_object_type type,
+user_def_new(uint32_t uid, uint32_t owner, enum box_schema_object_type type,
 	     const char *name, uint32_t name_len)
 {
 	struct user_def *def;
diff --git a/src/box/user_def.h b/src/box/user_def.h
index 01f2e97549..96c3ee96c3 100644
--- a/src/box/user_def.h
+++ b/src/box/user_def.h
@@ -95,7 +95,7 @@ struct priv_def {
 	/* Object id - is only defined for object type */
 	uint32_t object_id;
 	/* Object type - function, space, universe */
-	enum schema_object_type object_type;
+	enum box_schema_object_type object_type;
 	/**
 	 * What is being granted, has been granted, or is being
 	 * revoked.
@@ -142,7 +142,7 @@ struct user_def {
 	/** Creator of the user */
 	uint32_t owner;
 	/** 'user' or 'role' */
-	enum schema_object_type type;
+	enum box_schema_object_type type;
 	/**
 	 * Authentication data or NULL if auth method is unset.
 	 *
@@ -166,7 +166,7 @@ struct user_def {
  * This function never fails.
  */
 struct user_def *
-user_def_new(uint32_t uid, uint32_t owner, enum schema_object_type type,
+user_def_new(uint32_t uid, uint32_t owner, enum box_schema_object_type type,
 	     const char *name, uint32_t name_len);
 
 /** Destroys and frees a user definition. */
diff --git a/test/app-luatest/module_api_luatest_test.lua b/test/app-luatest/module_api_luatest_test.lua
index 80e36ea53a..8bd0caa627 100644
--- a/test/app-luatest/module_api_luatest_test.lua
+++ b/test/app-luatest/module_api_luatest_test.lua
@@ -56,9 +56,32 @@ g.test_box_access_check_ddl = function()
         end
         local ffi = require('ffi')
         ffi.cdef([[
+            enum box_schema_object_type {
+                BOX_SC_UNKNOWN = 0,
+                BOX_SC_UNIVERSE = 1,
+                BOX_SC_SPACE = 2,
+                BOX_SC_FUNCTION = 3,
+                BOX_SC_USER = 4,
+                BOX_SC_ROLE = 5,
+                BOX_SC_SEQUENCE = 6,
+                BOX_SC_COLLATION = 7,
+                /*
+                 * All object types are supposed to be above this point,
+                 * all entity types - below.
+                 */
+                schema_object_type_MAX = 8,
+                BOX_SC_ENTITY_SPACE,
+                BOX_SC_ENTITY_FUNCTION,
+                BOX_SC_ENTITY_USER,
+                BOX_SC_ENTITY_ROLE,
+                BOX_SC_ENTITY_SEQUENCE,
+                BOX_SC_ENTITY_COLLATION,
+                schema_entity_type_MAX = 15
+            };
+
             int box_access_check_ddl(
                 const char *name, uint32_t object_id, uint32_t owner_uid,
-                uint32_t object_type, uint16_t access);
+                enum box_schema_object_type object_type, uint16_t access);
         ]])
 
         local priv_to_name = {}
-- 
GitLab